📄 jsp.java
字号:
package myjsp;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Myframe extends JFrame implements ActionListener
{
private JTextField resultField = new JTextField("0");
private boolean end,add,sub,mul,div;
private String str;
private double num1,num2;
private JButton reset = new JButton("归零");
private JButton b1 = new JButton("1");
private JButton b2 = new JButton("2");
private JButton b3 = new JButton("3");
private JButton b4 = new JButton("4");
private JButton b5 = new JButton("5");
private JButton b6 = new JButton("6");
private JButton b7 = new JButton("7");
private JButton b8 = new JButton("8");
private JButton b9 = new JButton("9");
private JButton b0 = new JButton("0");
private JButton bPlus = new JButton("+");
private JButton bMinus = new JButton("-");
private JButton bMultiple = new JButton("*");
private JButton bDivide = new JButton("/");
private JButton bEqual = new JButton("=");
private JButton bDot = new JButton(".");
public Myframe()
{
}
public Myframe(String title)
{
super(title);
this.setSize(300,200);
this.setLocation(150,150);
this.setResizable(false);
BorderLayout bl1 = new BorderLayout(5,5);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(bl1);
//设置文本显示区
resultField = new JTextField("0");;
resultField.setSize(400,50);
resultField.setHorizontalAlignment(JTextField.RIGHT );
this.add(BorderLayout.NORTH,resultField);
JPanel bPanel = new JPanel();
this.add(BorderLayout.SOUTH,reset);
this.add(BorderLayout.CENTER,bPanel);
GridLayout gl1 = new GridLayout(4,4,5,5);
bPanel.setLayout(gl1);
//添加按钮
//Font f11 = new Font();
b1.setForeground(Color.blue);
Font f1 =new Font("Brush Script MT",Font.BOLD ,20);
b1.setFont(f1);
b2.setFont(f1);
//b1.setFont(f11.ITALIC);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b0.addActionListener(this);
bDot.addActionListener(this);
bEqual.addActionListener(this);
bPlus.addActionListener(this);
bMultiple.addActionListener(this);
bDivide.addActionListener(this);
reset.addActionListener(this);
bPanel.add(b1);
bPanel.add(b2);
bPanel.add(b3);
bPanel.add(bPlus);
bPanel.add(b4);
bPanel.add(b5);
bPanel.add(b6);
bPanel.add(bMinus);
bPanel.add(b7);
bPanel.add(b8);
bPanel.add(b9);
bPanel.add(bMultiple);
bPanel.add(bDot);
bPanel.add(b0);
bPanel.add(bEqual);
bPanel.add(bDivide);
add(BorderLayout.CENTER, bPanel);
}
public void num(int i){
String s = null;
s=String.valueOf(i);
if(end){
//如果数字输入结束,则将文本框置零,重新输入
resultField.setText("0");
end=false;
}
if((resultField.getText()).equals("0")){
//如果文本框的内容为零,则覆盖文本框的内容
resultField.setText(s);
}
else{
//如果文本框的内容不为零,则在内容后面添加数字
str = resultField.getText() + s;
resultField.setText(str);
}
}
public void actionPerformed(ActionEvent e){ //数字事件
if(e.getSource()==b1)
num(1);
else if(e.getSource()==b2)
num(2);
else if(e.getSource()==b3)
num(3);
else if(e.getSource()==b4)
num(4);
else if(e.getSource()==b5)
num(5);
else if(e.getSource()==b6)
num(6);
else if(e.getSource()==b7)
num(7);
else if(e.getSource()==b8)
num(8);
else if(e.getSource()==b9)
num(9);
else if(e.getSource()==b0)
num(0);
//符号事件
else if(e.getSource()==bPlus)
sign(1);
else if(e.getSource()==bMinus)
sign(2);
else if(e.getSource()==bMultiple)
sign(3);
else if(e.getSource()==bDivide)
sign(4);
//重置按钮
else if(e.getSource() == reset)
res(5);
//等号
else if(e.getSource()==bDot){
str=resultField.getText();
if(str.indexOf(".")<=1){
str+=".";
resultField.setText(str);
}
}
else if(e.getSource()==bEqual){
num2=Double.parseDouble(resultField.getText());
if(add){
num1=num1 + num2;}
else if(sub){
num1=num1 - num2;}
else if(mul){
num1=num1 * num2;}
else if(div){
num1=num1 / num2;}
resultField.setText(String.valueOf(num1));
end=true;
}
}
public void res(int n)
{
resultField.setText("0");
}
public void sign(int s){
if(s==1){
add=true;
sub=false;
mul=false;
div=false;
}
else if(s==2){
add=false;
sub=true;
mul=false;
div=false;
}
else if(s==3){
add=false;
sub=false;
mul=true;
div=false;
}
else if(s==4){
add=false;
sub=false;
mul=false;
div=true;
}
num1=Double.parseDouble(resultField.getText());
end=true;
}
}
class MyTest {
public static void main(String[] args) {
Myframe mf = new Myframe("计算器");
mf.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -