📄 calculatorframe.java
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
public class CalculatorFrame extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
int btn_height = 30;
int btn_width1 = 90;
int btn_width = 50;
int btn_start_row = 30;
int btn_start_col = 4;
double operNum1,operNum2,result;
String strValue,strBtnName,strOperNum1="#",strOperNum2="#",strResult,operateNotion;
Boolean firstIsOver=false;
Boolean firstOperOver=false;
JLabel display = new JLabel("0",JLabel.RIGHT);
JPanel jp = new JPanel();
JButton btn_back = new JButton("BackSpace");
JButton btn_ce = new JButton("CE");
JButton btn_c = new JButton("C");
JButton btn7 = new JButton("7");
JButton btn8 = new JButton("8");
JButton btn9 = new JButton("9");
JButton btnDiv = new JButton("/");
JButton btn4 = new JButton("4");
JButton btn5 = new JButton("5");
JButton btn6 = new JButton("6");
JButton btnMul = new JButton("*");
JButton btn1 = new JButton("1");
JButton btn2 = new JButton("2");
JButton btn3 = new JButton("3");
JButton btnSub = new JButton("-");
JButton btn0 = new JButton("0");
JButton btnFlag = new JButton("+\\-");
JButton btnDot = new JButton(".");
JButton btnAdd = new JButton("+");
JButton btnEqual = new JButton("=");
JButton[] btnControl;
JButton[][] btnNum;
@SuppressWarnings("deprecation")
public CalculatorFrame(){
super("计算器");
setLayout(null);
jp.setBorder(new TitledBorder(""));
//display.setBounds(5,4, 280, 20);
display.reshape(5, 4, 280, 20);
//jp.setBounds(3, 1, 282, 25);
jp.reshape(3, 1, 282, 25);
add(display);
add(jp);//display area
btnEqual.setBounds(233,70,btn_width,141);
btnEqual.reshape(233,70,btn_width,141);
btnEqual.addActionListener(this);
add(btnEqual);
btnControl= new JButton[]{btn_back,btn_ce,btn_c};
int col1 =4;
for (int i=0;i<3;i++){
//btnControl[i].setBounds(col1,btn_start_row,btn_width1,btn_height);
btnControl[i].reshape(col1,btn_start_row,btn_width1,btn_height);
btnControl[i].addActionListener(this);
add(btnControl[i]);
col1 = col1+95;
}
btnNum = new JButton[][]{{btn7,btn8,btn9,btnDiv},
{btn4,btn5,btn6,btnMul},
{btn1,btn2,btn3,btnSub},
{btn0,btnFlag,btnDot,btnAdd}
};
int row = btn_start_row+40;
for(int i=0;i<4;i++){
int col = 4;
for (int j=0;j<4;j++){
//btnNum[i][j].setBounds(col, row, btn_width,btn_height);
btnNum[i][j].reshape(col, row, btn_width,btn_height);
btnNum[i][j].addActionListener(this);
add(btnNum[i][j]);
col =col+btn_width+7;
}
row = row+btn_height+7;
}
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
dispose();
System.exit(0);
}
});
this.setSize(296,251);
this.setVisible(true);
this.setResizable(false);
}
//-----------------------------------------------------------------------
public void actionPerformed(ActionEvent e){
//display.setText(e.getActionCommand());
strBtnName = e.getActionCommand();
strValue = display.getText();
if(strValue.startsWith("+")||strValue.startsWith("-")
||strValue.startsWith("*")||strValue.startsWith("/")){
firstIsOver = true;
}
if(strOperNum2=="$") firstOperOver = true;
strOperNum2="#";
if(strBtnName==".")
if (!strValue.contains("."))
display.setText(strValue+".");
if(strBtnName=="BackSpace")
if (strValue.length()==1)
display.setText("0");
else
display.setText(strValue.substring(0, strValue.length()-1));
if (strBtnName=="C")
display.setText("0");
if (strBtnName=="CE"){
strOperNum1="#";
strOperNum2="#";
display.setText("0");
}
if (strBtnName=="+"||strBtnName=="-"||strBtnName=="*"||strBtnName=="/"){
if (strOperNum1=="#"){
strOperNum1=strValue;
display.setText(strBtnName+" "+strValue);
operateNotion = strBtnName;
}
else{
if(firstIsOver){
display.setText(strBtnName+" "+strOperNum1);
operateNotion = strOperNum1;
}
else{
operateDemo(strOperNum1,operateNotion,strValue,strBtnName);
}
}
}
if (strBtnName=="="){
//能激发按钮
operateDemo(strOperNum1,operateNotion,strValue,"");
}
if (strBtnName=="0"){
if(firstIsOver||firstOperOver){
display.setText("0");
firstIsOver = false;
firstOperOver = false;
}
else{
if(strValue=="0"){
display.setText(strValue);}
else{
strValue=strValue+strBtnName;
display.setText(strValue);
}
}
}
if (strBtnName.compareTo("1")>=0&&strBtnName.compareTo("9")<=0){
if(firstIsOver||firstOperOver){
strValue=strBtnName;
display.setText(strValue);
firstIsOver = false;
firstOperOver = false;
}
else{
if (strValue=="0"){
strValue=strBtnName;
display.setText(strValue);
}
else{
strValue = strValue+strBtnName;
display.setText(strValue);
}
}//
}
}
//operateDemo(strOperNum1,operateNotion,strValue,"")
public Boolean operateDemo(String str1,String oflag,String str2,String tempflag){
//System.out.println(str1+oflag+str2+tempflag);
if (str1!="#"){
strOperNum2 = str2;
operNum1 = Double.valueOf(strOperNum1);
operNum2 = Double.valueOf(strOperNum2);
if (oflag=="+")
result = operNum1+operNum2;
else if(oflag=="-")
result = operNum1-operNum2;
else if(oflag=="*")
result = operNum1*operNum2;
else{
if (operNum2==0.0 ){
display.setText("0");
JOptionPane.showMessageDialog(null,
"不能被零除!", "提示",
JOptionPane.ERROR_MESSAGE);
display.setText("0");
}
else
result = operNum1/operNum2;
}
strResult = String.valueOf(result);
display.setText(strResult);
operateNotion = tempflag;
strOperNum2="$";
strOperNum1="#";
firstOperOver = false;
}
return true;
}
public static void main(String[] args){
CalculatorFrame mainframe = new CalculatorFrame();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -