问答题
本题中定义了一个简单的计算器,可以进行基本的四则运算。程序中包含16个按钮用来表示0~9、+、-、*、/、=运算符和小数点,程序顶部的文本框用来显示操作数以及结果。 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class java2 public static void main(String[]args) try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); catch(Exception e) JFrame frame=new CalculatorFrame(); frame.show(); class CalculatorPanel extends JPanel implements ActionListener private JTextField display; private JButton btn; private double arg=0; private String op="="; private boolean start=true; public CalculatorPanel() setLayout(new BorderLayout()); display=new JTextField("0"); display.setEditable(false); add(display,"North"); JPanel p=new JPanel(); p.setLayout(new GridLayout(4,4)); String buttons="789/456*123-0.=+"; for(int i=0;i<buttons.length();i++) btn=new JButton(buttons.substring(i,i+1)); p.add(btn); ______; add(p,"Center"); public void actionPerformed(ActionEvent evt) String s=evt.getActionCommand(); if('0'<=s.charAt(0)&&s.charAt(0)<='9'|| s.equals(".")) if(start)display.setText(s); else display.setText(display.getText()+s); start=false; else if(start) if(s.equals("-")) display.setText(s); start=false; else op=s; else double x=______; calculate(x); op=s; start=true; public void calculate(double n) if(op.equals("+"))arg+=n; else if(op.equals("-"))arg--n; else if(op.equals("*"))arg*=n; else if(op.equals("/"))arg/=n; else if(op.equals("="))arg=n; display.setText(""+arg); class CalculatorFrame extends JFrame public CalculatorFrame() setTitle("java2"); setSize(220,180); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); Container contentPane=getContentPane(); contentPane.add(new CalculatorPanel());
【正确答案】 第1处:btn.addActionListener(this) 第2处:Double.parseDouble(display.getText())
【答案解析】 [解析] 第1处为按钮添加监听器;第2处获得输入数字并转化为double型。
提交答案
关闭