📄 caculator.txt
字号:
package calculator;
import javax.swing.JFrame;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.text.DecimalFormat;
public class Calculator extends JFrame implements ActionListener
{
private final String[] Button={"7","8","9","4","5","6","1","2","3","0",".","="};
private final String[] Operation={"+","-","*","/"};
private JButton button[]=new JButton[Button.length];
private JButton operation[]=new JButton[Operation.length];
private JTextField resultText=new JTextField("",10);
private boolean input=true;
private double resultNum=0.0;
private boolean operateValidFlag=true;
private String result="=";
public static void main(String[] args)
{
JFrame frame=new JFrame(“calculator”);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Calculator c=new Calculator();
c.pack();
c.setVisible(true);
}
public Calculator()
{
super("Calculator");
init();
}
void init()
{
setBackground(Color.BLUE);
JPanel p1=new JPanel();
JPanel p2=new JPanel();
JPanel p3=new JPanel();
JPanel bigpanel=new JPanel();
bigpanel.setBackground(Color.white);
bigpanel.add(p1);
bigpanel.add(p2);
bigpanel.add(p3);
this.getContentPane().add(bigpanel);
p1.setLayout(new GridLayout(4,3));
p2.setLayout(new GridLayout(4,1));
p3.setLayout(new FlowLayout());
for(int i=0; i<Button.length;i++)
{
button[i]=new JButton(Button[i]);
button[i].addActionListener(this);
button[i].setBackground(Color.white);
p1.add(button[i]);
}
for(int i=0;i<Operation.length;i++)
{
operation[i]=new JButton(Operation[i]);
operation[i].addActionListener(this);
operation[i].setBackground(Color.white);
p2.add(operation[i]);
}
JLabel label1 = new JLabel ("jieguo:");
JButton c=new JButton("clear");
c.setBackground(Color.CYAN);
c.addActionListener(this);
p3.add(label1);
p3.add(resultText);
p3.add(c);
}
public void actionPerformed(ActionEvent e)
{
String label= e.getActionCommand();
if(label.equals("clear"))
resultText.setText("");
else if("0123456789.".indexOf(label)>=0)
handleNumber(label);
else
handleOperator(label);
}
private void handleNumber(String button)
{
if(input)
resultText.setText(button);
else if((button.equals("."))&&(resultText.getText().indexOf(".")<0))
resultText.setText(resultText.getText()+".");
else if(!button.equals("."))
resultText.setText(resultText.getText()+button);
input=false;
}
private void handleOperator(String button)
{
if(result.equals("/"))
resultNum /=getNumberFromText();
else if(result.equals("+"))
resultNum +=getNumberFromText();
else if(result.equals("-"))
resultNum -=getNumberFromText();
else if(result.equals("*"))
resultNum *=getNumberFromText();
else if(result.equals("="))
resultNum =getNumberFromText();
if(operateValidFlag)
{
long t1;
double t2;
t1=(long)resultNum;
t2=resultNum-t1;
if(t2==0) resultText.setText(String.valueOf(t1));
else
resultText.setText(String.valueOf(resultNum));
}
operateValidFlag=true;
result=button;
input=true;
}
private double getNumberFromText()
{
double result=0;
try
{
result=Double.valueOf(resultText.getText()).doubleValue();
}catch (NumberFormatException e){}
return result;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -