本题中定义了一个简单的计算器,可以进行基本的四则运算。程序中包含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());
dispIay=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型。