📄 calculatorpanel.java
字号:
package mine;
import java.awt.*;
import javax.swing.*;
public class CalculatorPanel extends JPanel//创建计算器Panel
{
JPanel textPanel=new JPanel(); //用于放置显示结果的TextField的面板
JPanel buttonAPanel=new JPanel(); //用于放置BackSpace、CE、C按钮的面板
JPanel buttonPanel=new JPanel(); //用于放置其余按钮面板的面板
JPanel buttonBPanel=new JPanel(); //用于放置MC、MR等的面板
JPanel buttonCPanel=new JPanel(); //用于放置数字的面板
JPanel buttonDPanel=new JPanel(); //用于放置+、-、*、\的面板
JTextField resultField=new JTextField(30); //显示结果的文本框
JTextField save=new JTextField(2); //显示是否有存储的文本框
double num; //计算时第二次得到的数字
double mem; //存储的保留数字
double result,temp; //第一次得到的数字(亦结果)和临时保存的数字
int integer; //当前数的整数形式
String op="",s=""; //操作命令和操作数字的字符串形式
boolean flag=true,containdot=false,enterednum=false; //flag代表在连续操作时是否应该更新原有的text内容,以及判断当前数是否是小数
public CalculatorPanel()
{
setLayout(new BorderLayout()); //设置计算器大面板CalculatorPanel的布局管理器为边框式
add(textPanel,BorderLayout.NORTH); //把三块功能面板分别添加到CalculatorPanel的相应位置
add(buttonAPanel,BorderLayout.CENTER);
add(buttonPanel,BorderLayout.SOUTH);
buttonPanel.add(buttonBPanel,BorderLayout.WEST);
buttonBPanel.setLayout(new GridLayout(4,1,2,2)); //设置功能面板buttonBPanel的布局管理器为网格式
buttonPanel.add(buttonCPanel,BorderLayout.CENTER);
buttonCPanel.setLayout(new GridLayout(4,3,2,2)); //设置功能面板buttonCPanel的布局管理器为网格式
buttonPanel.add(buttonDPanel,BorderLayout.EAST);
buttonDPanel.setLayout(new GridLayout(4,2,2,2)); //设置功能面板buttonDPanel的布局管理器为网格式
resultField.setFocusable(false);
resultField.setHorizontalAlignment(JTextField.RIGHT); //设置文本右对齐
resultField.setText("0."); //默认显示为"0."
textPanel.add(resultField);
save.setEditable(false);
save.setBorder(BorderFactory.createLoweredBevelBorder());//创建一个具有凹入斜面边缘的边框,将组件当前背景色的较亮的色度用于突出显示,较暗的色度用于阴影
buttonAPanel.add(save,BorderLayout.WEST);
JButton[] a=new JButton[3];
a[0]=new JButton("BackSpace");
a[1]=new JButton("CE");
a[2]=new JButton("C");
for(int n=0;n<3;n++) //用数组实现添加各功能面板的按钮,可以在新建、设置颜色、添加监听器的环节中节省大量源代码
{
buttonAPanel.add(a[n]);
a[n].setForeground(Color.RED);
a[n].addActionListener(new commandProcessor(this));
}
JButton[] b=new JButton[4];
b[0]=new JButton("MC");
b[1]=new JButton("MR");
b[2]=new JButton("MS");
b[3]=new JButton("M+");
for(int n=0;n<4;n++) //用数组实现添加各功能面板的按钮,可以在新建、设置颜色、添加监听器的环节中节省大量源代码
{
buttonBPanel.add(b[n]);
b[n].setForeground(Color.RED);
b[n].addActionListener(new commandProcessor(this));
}
JButton[] c=new JButton[12];
c[0]=new JButton("7");
c[1]=new JButton("8");
c[2]=new JButton("9");
c[3]=new JButton("4");
c[4]=new JButton("5");
c[5]=new JButton("6");
c[6]=new JButton("1");
c[7]=new JButton("2");
c[8]=new JButton("3");
c[9]=new JButton("0");
c[10]=new JButton("+/-");
c[11]=new JButton(".");
for(int n=0;n<12;n++) //用数组实现添加各功能面板的按钮,可以在新建、设置颜色、添加监听器的环节中节省大量源代码
{
buttonCPanel.add(c[n]);
c[n].setForeground(Color.BLUE);
c[n].addActionListener(new commandProcessor(this));
}
JButton[] d=new JButton[8];
d[0]=new JButton("/");
d[1]=new JButton("sqrt");
d[2]=new JButton("*");
d[3]=new JButton("%");
d[4]=new JButton("-");
d[5]=new JButton("1/x");
d[6]=new JButton("+");
d[7]=new JButton("=");
for(int n=0;n<8;n++) //用数组实现添加各功能面板的按钮,可以在新建、设置颜色、添加监听器的环节中节省大量源代码
{
buttonDPanel.add(d[n]);
d[n].setForeground(Color.BLUE);
d[n].setSize(20, 20);
d[n].addActionListener(new commandProcessor(this));
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -