java图形化界面编计算器问题

来源:百度知道 编辑:UC知道 时间:2024/06/30 05:51:43
import java.awt.*;
import java.awt.event.*;
class C extends Frame
{
String[] str={"1","2","3","+","c","4","5","6","-","退格","7","8","9","*","1/x","0","+/-",".","/","="};
Button[] button;
Panel panel1,panel2;
TextField t;
C()
{
super("计算器");
button=new Button[20];
panel1=new Panel();
panel2=new Panel();
add(panel1,"North");
add(panel2,"Center");
t=new TextField(20);
panel1.add(t);
panel2.setLayout(new GridLayout(4,5));
for(int i=0;i<20;i++){
button[i]=new Button(str[i]);
panel2.add(button[i]);
button[i].addActionListener(new L());
}
setSize(200,300);
setVisible(true);
}
}
publi

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator
{
public static void main(String[] args)
{
CalculatorFrame frame = new CalculatorFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200,200);
frame.setVisible(true);
}
}
class CalculatorFrame extends JFrame
{
public CalculatorFrame()
{
setTitle("Calculator");
CalculatorPanel panel = new CalculatorPanel();
add(panel);
pack();
}
}
class CalculatorPanel extends JPanel
{
private JLabel display;
private JPanel panel;
private double result;
private String lastCommand;
private boolean start;
public CalculatorPanel()
{
setLayout(new BorderLayout());

result = 0;
lastCommand = "=";
start = true;
display = new JLabel("0",JLabel.RIGH