📄 calculategui.java
字号:
package calculate;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.ComponentOrientation;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class CalculateGUI implements ActionListener {
private Calculate calculate;
private Frame frame;
private TextField showTextTxd;
public CalculateGUI() {
this.calculate = new Calculate();
this.frame = new Frame("计算器");
this.showTextTxd = new TextField("0.");
Panel centerPanel = createCenterPanel();
this.frame.add(this.showTextTxd, BorderLayout.NORTH);
this.frame.add(centerPanel, BorderLayout.CENTER);
this.frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
System.exit(0);
}
});
this.frame.pack();
this.frame.setVisible(true);
}
private Panel createCenterPanel() {
Panel centerPanel = new Panel(new BorderLayout());
centerPanel.add(createNorthCenterPanel(), BorderLayout.NORTH);
centerPanel.add(createWestCenterPanel(), BorderLayout.WEST);
centerPanel.add(createCenterCenterPanel(), BorderLayout.CENTER);
return centerPanel;
}
private Panel createCenterCenterPanel() {
Panel centerCenterPanel = new Panel(new GridLayout(4, 5));
Button[][] centerBtns = new Button[4][5];
centerBtns[0] = new Button[] {
new Button("7"),
new Button("8"),
new Button("9"),
new Button("/"),
new Button("sqrt")
};
centerBtns[1] = new Button[] {
new Button("4"),
new Button("5"),
new Button("6"),
new Button("*"),
new Button("%")
};
centerBtns[2] = new Button[] {
new Button("1"),
new Button("2"),
new Button("3"),
new Button("-"),
new Button("1/x")
};
centerBtns[3] = new Button[] {
new Button("0"),
new Button("+/-"),
new Button("."),
new Button("+"),
new Button("=")
};
for (int i = 0; i < centerBtns.length; ++i) {
for (int j = 0; j <centerBtns[i].length; ++j) {
centerBtns[i][j].addActionListener(this);
centerCenterPanel.add(centerBtns[i][j]);
}
}
return centerCenterPanel;
}
private Panel createWestCenterPanel() {
Panel westCenterPanel = new Panel(new GridLayout(4, 1));
Button mcBtn = new Button("MC");
Button mrBtn = new Button("MR");
Button msBtn = new Button("MS");
Button mAddtn = new Button("M+");
mcBtn.addActionListener(this);
mrBtn.addActionListener(this);
msBtn.addActionListener(this);
mAddtn.addActionListener(this);
westCenterPanel.add(mcBtn);
westCenterPanel.add(mrBtn);
westCenterPanel.add(msBtn);
westCenterPanel.add(mAddtn);
return westCenterPanel;
}
private Panel createNorthCenterPanel() {
Panel northCenterPanel = new Panel(new GridLayout(1, 4));
Button blankBtn = new Button();
Button backspaceBtn = new Button("Backspace");
Button ceBtn = new Button("CE");
Button cBtn = new Button("C");
backspaceBtn.addActionListener(this);
ceBtn.addActionListener(this);
cBtn.addActionListener(this);
northCenterPanel.add(blankBtn);
northCenterPanel.add(backspaceBtn);
northCenterPanel.add(ceBtn);
northCenterPanel.add(cBtn);
return northCenterPanel;
}
public void actionPerformed(ActionEvent e) {
this.showTextTxd.setText(this.calculate.run(e.getActionCommand()));
}
public static void main(String[] args) {
new CalculateGUI();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -