parent
2d9d9abb63
commit
b8d12e0af6
@ -1,165 +0,0 @@
|
|||||||
import javax.swing.*;
|
|
||||||
import java.awt.*;
|
|
||||||
|
|
||||||
public class CalculatorWindow extends JFrame {
|
|
||||||
Computer computer;
|
|
||||||
JButton numberButtons[];
|
|
||||||
JButton operatorButton[];
|
|
||||||
//加减乘除按钮
|
|
||||||
JButton dot,fu,back,equation,clear,sqrt,reciprocal;
|
|
||||||
JTextField resultShow;
|
|
||||||
//显示计算结果
|
|
||||||
JTextField showTempResult;
|
|
||||||
//临时结果
|
|
||||||
JLabel showOperator;
|
|
||||||
//运算符
|
|
||||||
JTextField showDataItem;
|
|
||||||
//当前参与运算的数据项
|
|
||||||
JTextArea computerProcess;
|
|
||||||
//计算步骤
|
|
||||||
JButton saveBtn,copyBtn,clearTextBtn;
|
|
||||||
public CalculatorWindow() throws HeadlessException {
|
|
||||||
computer=new Computer();
|
|
||||||
initView();//设置界面
|
|
||||||
initActionListener();//注册监视器
|
|
||||||
}
|
|
||||||
public void initView(){
|
|
||||||
this.setTitle("计算器");
|
|
||||||
JPanel left,right;
|
|
||||||
resultShow=new JTextField(10);
|
|
||||||
resultShow.setHorizontalAlignment(JTextField.LEFT);
|
|
||||||
resultShow.setForeground(Color.blue);
|
|
||||||
resultShow.setFont(new Font("TimesRoman",Font.BOLD,14));
|
|
||||||
resultShow.setEditable(false);
|
|
||||||
resultShow.setBackground(Color.lightGray);
|
|
||||||
|
|
||||||
showTempResult=new JTextField();
|
|
||||||
showTempResult.setHorizontalAlignment(JTextField.RIGHT);
|
|
||||||
showTempResult.setFont(new Font("Arial",Font.BOLD,14));
|
|
||||||
showTempResult.setEditable(false);
|
|
||||||
|
|
||||||
showOperator=new JLabel();
|
|
||||||
showOperator.setHorizontalAlignment(JTextField.CENTER);
|
|
||||||
showOperator.setFont(new Font("Arial",Font.BOLD,18));
|
|
||||||
|
|
||||||
showDataItem=new JTextField();
|
|
||||||
showDataItem.setHorizontalAlignment(JTextField.LEFT);
|
|
||||||
showDataItem.setBackground(Color.white);
|
|
||||||
showDataItem.setFont(new Font("Arial",Font.BOLD,14));
|
|
||||||
showDataItem.setEditable(false);
|
|
||||||
|
|
||||||
computerProcess=new JTextArea();
|
|
||||||
computerProcess.setEditable(false);
|
|
||||||
computerProcess.setFont(new Font("宋体",Font.PLAIN,14));
|
|
||||||
|
|
||||||
numberButtons=new JButton[10];
|
|
||||||
for (int i = 0; i <=9; i++) {
|
|
||||||
numberButtons[i]=new JButton(" "+i);
|
|
||||||
numberButtons[i].setFont(new Font("Arial",Font.BOLD,20));
|
|
||||||
}
|
|
||||||
operatorButton=new JButton[4];
|
|
||||||
String s[]={"+","-","*","/"};
|
|
||||||
for (int i = 0; i < 4; i++) {
|
|
||||||
operatorButton[i]=new JButton(s[i]);
|
|
||||||
operatorButton[i].setFont(new Font("Arial",Font.BOLD,20));
|
|
||||||
}
|
|
||||||
dot=new JButton(".");
|
|
||||||
fu=new JButton("+/-");
|
|
||||||
equation=new JButton("=");
|
|
||||||
back=new JButton("退格");
|
|
||||||
clear=new JButton("C");
|
|
||||||
sqrt=new JButton("sqrt");
|
|
||||||
reciprocal=new JButton("1/x");
|
|
||||||
saveBtn=new JButton("保存");
|
|
||||||
copyBtn=new JButton("复制");
|
|
||||||
clearTextBtn=new JButton("清除");
|
|
||||||
|
|
||||||
left=new JPanel();
|
|
||||||
right=new JPanel();
|
|
||||||
|
|
||||||
//左边布局
|
|
||||||
left.setLayout(new BorderLayout());
|
|
||||||
//BorderLayout 容器分为五个部分(东南西北中),每部分只能包含一个组件
|
|
||||||
JPanel centerInLeft=new JPanel();
|
|
||||||
Box box=Box.createHorizontalBox();
|
|
||||||
//创建水平排列组件的Box
|
|
||||||
box.add(showTempResult);
|
|
||||||
box.add(showOperator);
|
|
||||||
box.add(showDataItem);
|
|
||||||
left.add(box,BorderLayout.NORTH);
|
|
||||||
left.add(centerInLeft,BorderLayout.CENTER);
|
|
||||||
centerInLeft.setLayout(new GridLayout(5,5));
|
|
||||||
//GridLayout 网格布局5行5列
|
|
||||||
centerInLeft.add(numberButtons[1]);
|
|
||||||
centerInLeft.add(numberButtons[2]);
|
|
||||||
centerInLeft.add(numberButtons[3]);
|
|
||||||
centerInLeft.add(operatorButton[0]);
|
|
||||||
centerInLeft.add(back);
|
|
||||||
|
|
||||||
centerInLeft.add(numberButtons[4]);
|
|
||||||
centerInLeft.add(numberButtons[5]);
|
|
||||||
centerInLeft.add(numberButtons[6]);
|
|
||||||
centerInLeft.add(operatorButton[1]);
|
|
||||||
centerInLeft.add(clear);
|
|
||||||
|
|
||||||
centerInLeft.add(numberButtons[7]);
|
|
||||||
centerInLeft.add(numberButtons[8]);
|
|
||||||
centerInLeft.add(numberButtons[9]);
|
|
||||||
centerInLeft.add(operatorButton[2]);
|
|
||||||
centerInLeft.add(reciprocal);
|
|
||||||
|
|
||||||
centerInLeft.add(numberButtons[0]);
|
|
||||||
centerInLeft.add(fu);
|
|
||||||
centerInLeft.add(dot);
|
|
||||||
centerInLeft.add(operatorButton[3]);
|
|
||||||
centerInLeft.add(sqrt);
|
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++) {
|
|
||||||
centerInLeft.add(new JLabel());
|
|
||||||
}
|
|
||||||
centerInLeft.add(equation);
|
|
||||||
|
|
||||||
//右边布局
|
|
||||||
right.setLayout(new BorderLayout());
|
|
||||||
right.add(resultShow,BorderLayout.NORTH);
|
|
||||||
right.add(new JScrollPane(computerProcess),BorderLayout.CENTER);
|
|
||||||
JPanel southInRight=new JPanel();
|
|
||||||
southInRight.add(saveBtn);
|
|
||||||
southInRight.add(copyBtn);
|
|
||||||
southInRight.add(clearTextBtn);
|
|
||||||
right.add(southInRight,BorderLayout.SOUTH);
|
|
||||||
|
|
||||||
JSplitPane split=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,left,right);
|
|
||||||
//split 左右布局的分割面板
|
|
||||||
add(split,BorderLayout.CENTER);
|
|
||||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置 点击关闭退出程序
|
|
||||||
setVisible(true);
|
|
||||||
setBounds(200,200,788,258);//设置位置大小
|
|
||||||
validate();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
public void initActionListener(){
|
|
||||||
HandleDight hd=new HandleDight(this);
|
|
||||||
for (int i = 0; i <= 9; i++) {
|
|
||||||
numberButtons[i].addActionListener(hd);
|
|
||||||
}
|
|
||||||
dot.addActionListener(hd);
|
|
||||||
|
|
||||||
HandleOperator ho=new HandleOperator(this);
|
|
||||||
for (int i = 0; i < 4; i++) {
|
|
||||||
operatorButton[i].addActionListener(ho);
|
|
||||||
}
|
|
||||||
fu.addActionListener(new HandleFu(this));
|
|
||||||
sqrt.addActionListener(new HandleSqrt(this));
|
|
||||||
reciprocal.addActionListener(new HandleReciprocal(this));
|
|
||||||
back.addActionListener(new HandleBack(this));
|
|
||||||
equation.addActionListener(new HandleEquation(this));
|
|
||||||
clear.addActionListener(new HandleClear(this));
|
|
||||||
HandleFile hf=new HandleFile(this);
|
|
||||||
saveBtn.addActionListener(hf);
|
|
||||||
copyBtn.addActionListener(hf);
|
|
||||||
clearTextBtn.addActionListener(hf);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in new issue