项目结构
效果
示例代码
jf
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Jf extends JFrame {
private JButton but0=new JButton("0");
private JButton but1=new JButton("1");
private JButton but2=new JButton("2");
private JButton but3=new JButton("3");
private JButton but4=new JButton("4");
private JButton but5=new JButton("5");
private JButton but6=new JButton("6");
private JButton but7=new JButton("7");
private JButton but8=new JButton("8");
private JButton but9=new JButton("9");
private JButton add=new JButton("+");//加
private JButton subtract=new JButton("-");//减
private JButton multiply=new JButton("*");//乘
private JButton except=new JButton("/");//除
private JButton amount=new JButton("=");//等于
private JButton ce=new JButton("ce");//清除
public static TextField text=new TextField(12);
private JPanel panel1=new JPanel();
private JPanel panel2=new JPanel();
private action ac=new action();
public Jf(){
super();
//JFrame jFrame = new JFrame();
//jFrame.setSize(300,400);
//panel1.setSize(300,100);
panel1.setBackground(Color.green);
panel2.setBackground(Color.red);
panel2.setLayout(new GridLayout(4,4));
panel1.add(text,BorderLayout.NORTH);
panel2.add(but7);
panel2.add(but8);
panel2.add(but9);
panel2.add(add);
panel2.add(but4);
panel2.add(but5);
panel2.add(but6);
panel2.add(subtract);
panel2.add(but1);
panel2.add(but2);
panel2.add(but3);
panel2.add(multiply);
panel2.add(but0);
panel2.add(amount);
panel2.add(ce);
panel2.add(except);
this.add(panel1,BorderLayout.NORTH);
this.add(panel2,BorderLayout.CENTER);
this.pack();
this.setVisible(true);
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
but0.addActionListener(ac);
but1.addActionListener(ac);
but2.addActionListener(ac);
but3.addActionListener(ac);
but4.addActionListener(ac);
but5.addActionListener(ac);
but6.addActionListener(ac);
but7.addActionListener(ac);
but8.addActionListener(ac);
but9.addActionListener(ac);
add.addActionListener(ac);
subtract.addActionListener(ac);
multiply.addActionListener(ac);
except.addActionListener(ac);
amount.addActionListener(ac);
ce.addActionListener(ac);
}
}
action
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class action implements ActionListener {
private String tmp="";
static int num1;
static int num2;
public int result;//结果
static int L;//状态
@Override
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
JButton button = (JButton) source;
String text = button.getText();
if (text.compareTo("0")>=0){
if (text.equals("=")){
num2=Integer.parseInt(tmp);
switch (L) {
case 1 -> {
System.out.println(num1 + num2);
Jf.text.setText(String.valueOf(num1 + num2));
tmp=String.valueOf(num1 + num2);
}
case 2 -> {
System.out.println(num1 - num2);
Jf.text.setText(String.valueOf(num1 - num2));
tmp=String.valueOf(num1 - num2);
}
case 3 -> {
System.out.println(num1 * num2);
Jf.text.setText(String.valueOf(num1 * num2));
tmp=String.valueOf(num1 * num2);
}
case 4 -> {
System.out.println(num1 / num2);
Jf.text.setText(String.valueOf(num1 / num2));
tmp=String.valueOf(num1 / num2);
}
}
}else {
tmp+=text;
}
if (text.equals("ce")){
num1=0;
num2=0;
tmp="";
result=0;
System.out.println("ce成功");
Jf.text.setText("");
}
}
if (text.equals("+")){
num1=Integer.parseInt(tmp);
tmp="";
L=1;
} else if (text.equals("-")) {
num1=Integer.parseInt(tmp);
tmp="";
L=2;
} else if (text.equals("*")) {
num1=Integer.parseInt(tmp);
tmp="";
L=3;
} else if (text.equals("/")) {
num1=Integer.parseInt(tmp);
tmp="";
L=4;
}
System.out.println(tmp);
Jf.text.setText(tmp);
}
}
Main
public class Main {
public static void main(String[] args) {
new Jf();
}
}
textAction
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class textAction implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
TextField source =(TextField) e.getSource();
//source.setText("成功");
}
}