📄 jsq.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class jsq extends JFrame implements ActionListener
{
double a=0.0;
double b=0.0;
double c=0.0;
int sign;
boolean inputnum=false;
boolean reset=true;
JTextField tf=new JTextField("0",25);
String str[]={"7","8","9","*","4","5","6","-","1","2","3","+","0",".","/","=","C","E"};
JButton btn[]=new JButton[str.length];
public jsq(){
Container container=getContentPane();
container.setLayout(new BorderLayout(5,4));
JPanel panel1=new JPanel();
panel1.setLayout(new GridLayout(5,4));
for (int i=0;i<str.length;i++)
{
btn[i]=new JButton(str[i]);
btn[i].addActionListener(this);
panel1.add(btn[i]);
}
JPanel panel2=new JPanel();
panel2.setLayout(new BorderLayout());
panel2.add(tf,BorderLayout.NORTH);
panel2.add(panel1,BorderLayout.CENTER);
container.add(panel2,BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getActionCommand().equals("C"))
{
tf.setText("0");
inputnum=false;
reset=true;
sign=0;
a=0.0;
b=0.0;
c=0.0;
}
if(ae.getActionCommand().equals("E"))
System.exit(0);
if(ae.getActionCommand().equals("0"))
if(inputnum)
tf.setText(tf.getText()+"0");
else tf.setText("0");
if(ae.getActionCommand().equals("1"))
if(inputnum)
tf.setText(tf.getText()+"1");
else{ tf.setText("1");
inputnum=true;
if(reset){
sign=0;
reset=false;
}
}
if(ae.getActionCommand().equals("2"))
if(inputnum)
tf.setText(tf.getText()+"2");
else{ tf.setText("2");
inputnum=true;
if(reset){
sign=0;
reset=false;
}
}
if(ae.getActionCommand().equals("3"))
if(inputnum)
tf.setText(tf.getText()+"3");
else{ tf.setText("3");
inputnum=true;
if(reset){
sign=0;
reset=false;
}
}
if(ae.getActionCommand().equals("4"))
if(inputnum)
tf.setText(tf.getText()+"4");
else{ tf.setText("4");
inputnum=true;
if(reset){
sign=0;
reset=false;
}
}
if(ae.getActionCommand().equals("5"))
if(inputnum)
tf.setText(tf.getText()+"5");
else{ tf.setText("5");
inputnum=true;
if(reset){
sign=0;
reset=false;
}
}
if(ae.getActionCommand().equals("6"))
if(inputnum)
tf.setText(tf.getText()+"6");
else{ tf.setText("6");
inputnum=true;
if(reset){
sign=0;
reset=false;
}
}
if(ae.getActionCommand().equals("7"))
if(inputnum)
tf.setText(tf.getText()+"7");
else{ tf.setText("7");
inputnum=true;
if(reset){
sign=0;
reset=false;
}
}
if(ae.getActionCommand().equals("8"))
if(inputnum)
tf.setText(tf.getText()+"8");
else{ tf.setText("8");
inputnum=true;
if(reset){
sign=0;
reset=false;
}
}
if(ae.getActionCommand().equals("9"))
if(inputnum)
tf.setText(tf.getText()+"9");
else{ tf.setText("9");
inputnum=true;
if(reset){
sign=0;
reset=false;
}
}
if(ae.getActionCommand().equals("."))
if(inputnum)
{
if(tf.getText().indexOf('.')<0)
tf.setText(tf.getText()+".");
}
else{ tf.setText("0.");
inputnum=true;
if(reset){
sign=0;
reset=false;
}
}
if(ae.getActionCommand().equals("+"))
{
switch(sign){
case 0:a=Double.parseDouble(tf.getText());break;
case 1:a=a+Double.parseDouble(tf.getText());break;
case 2:a=a-Double.parseDouble(tf.getText());break;
case 3:a=a*Double.parseDouble(tf.getText());break;
case 4:a=a/Double.parseDouble(tf.getText());break;
}
tf.setText(String.valueOf(a));
sign=1;
inputnum=false;
reset=false;
}
if(ae.getActionCommand().equals("-"))
{
switch(sign){
case 0:a=Double.parseDouble(tf.getText());break;
case 1:a=a+Double.parseDouble(tf.getText());break;
case 2:a=a-Double.parseDouble(tf.getText());break;
case 3:a=a*Double.parseDouble(tf.getText());break;
case 4:a=a/Double.parseDouble(tf.getText());break;
}
tf.setText(String.valueOf(a));
sign=2;
inputnum=false;
reset=false;
}
if(ae.getActionCommand().equals("*"))
{
switch(sign){
case 0:a=Double.parseDouble(tf.getText());break;
case 1:a=a+Double.parseDouble(tf.getText());break;
case 2:a=a-Double.parseDouble(tf.getText());break;
case 3:a=a*Double.parseDouble(tf.getText());break;
case 4:a=a/Double.parseDouble(tf.getText());break;
}
tf.setText(String.valueOf(a));
sign=3;
inputnum=false;
reset=false;
}
if(ae.getActionCommand().equals("/"))
{
switch(sign){
case 0:a=Double.parseDouble(tf.getText());break;
case 1:a=a+Double.parseDouble(tf.getText());break;
case 2:a=a-Double.parseDouble(tf.getText());break;
case 3:a=a*Double.parseDouble(tf.getText());break;
case 4:a=a/Double.parseDouble(tf.getText());break;
}
tf.setText(String.valueOf(a));
sign=4;
inputnum=false;
reset=false;
}
if(ae.getActionCommand().equals("="))
{
b=Double.parseDouble(tf.getText());
switch(sign){
case 0:c=Double.parseDouble(tf.getText());break;
case 1:c=a+b;break;
case 2:c=a-b;break;
case 3:c=a*b;break;
case 4:c=a/b;break;
}
tf.setText(String.valueOf(c));
a=c;
sign=0;
reset=true;
inputnum=false;
}
}
public static void main(String[] args)
{
jsq frame=new jsq();
frame.setTitle("计算器");
frame.setBounds(200,200,220,250);
frame.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -