📄 karl.java
字号:
panel.add(textAnswer, BorderLayout.CENTER);
panel.add(panel1, BorderLayout.SOUTH);
panel1.setLayout(new BorderLayout());
textMemory = new JTextField(3);
textMemory.setEditable(false);
textMemory.setBackground(new Color(220, 50, 250));
labelMemSpace = new JLabel(" ");
buttonBk = new JButton("Backspace");
buttonBk.setForeground(new Color(255, 0, 0));
buttonBk.setFont(new Font("Dialog",Font.BOLD,14));
buttonCe = new JButton("CE");
buttonCe.setForeground(new Color(255, 0, 0));
buttonCe.setFont(new Font("Dialog",Font.BOLD,14));
buttonC = new JButton("C");
buttonC.setForeground(new Color(255, 0, 0));
buttonC.setFont(new Font("Dialog",Font.BOLD,14));
buttonBk.addActionListener(this);
buttonBk.addMouseMotionListener(this);
buttonCe.addActionListener(this);
buttonCe.addMouseMotionListener(this);
buttonC.addActionListener(this);
buttonC.addMouseMotionListener(this);
panel1.add(panel2, BorderLayout.NORTH);
panel1.setBackground(new Color(230,250,250));
panel2.setLayout(new FlowLayout(FlowLayout.RIGHT));
panel2.setBackground(new Color(230,250,250));
panel2.add(textMemory);
panel2.add(labelMemSpace);
panel2.add(buttonBk);
panel2.add(buttonCe);
panel2.add(buttonC);
panel3 = new JPanel();
panel3.setBackground(new Color(230,250,250));
panel1.add(panel3, BorderLayout.CENTER);
button = new JButton[10];
for (int i = 0; i < button.length; i++) {
button[i] = new JButton(Integer.toString(i));
button[i].setForeground(new Color(0, 0, 255));
button[i].setFont(new Font("Dialog",Font.BOLD,14));
button[i].addMouseMotionListener(this);
}
buttonMC = new JButton("MC");
buttonMC.setForeground(new Color(255, 0, 0));
buttonMC.setFont(new Font("Dialog",Font.BOLD,14));
buttonMR = new JButton("MR");
buttonMR.setForeground(new Color(255, 0, 0));
buttonMR.setFont(new Font("Dialog",Font.BOLD,14));
buttonMS = new JButton("MS");
buttonMS.setForeground(new Color(255, 0, 0));
buttonMS.setFont(new Font("Dialog",Font.BOLD,14));
buttonMAdd = new JButton("M+");
buttonMAdd.setForeground(new Color(255, 0, 0));
buttonMAdd.setFont(new Font("Dialog",Font.BOLD,14));
buttonDot = new JButton(".");
buttonDot.setForeground(new Color(0, 0, 255));
buttonDot.setFont(new Font("Dialog",Font.BOLD,24));
buttonAddAndSub = new JButton("+/-");
buttonAddAndSub.setForeground(new Color(0, 0, 255));
buttonAddAndSub.setFont(new Font("Dialog",Font.BOLD,18));
buttonAdd = new JButton("+");
buttonAdd.setForeground(new Color(10, 220, 250));
buttonAdd.setFont(new Font("Dialog",Font.BOLD,18));
buttonSub = new JButton("-");
buttonSub.setForeground(new Color(255, 0, 0));
buttonSub.setFont(new Font("Dialog",Font.BOLD,18));
buttonMul = new JButton("*");
buttonMul.setForeground(new Color(255, 0, 0));
buttonMul.setFont(new Font("Dialog",Font.BOLD,18));
buttonDiv = new JButton("/");
buttonDiv.setForeground(new Color(150, 252, 140));
buttonDiv.setFont(new Font("Dialog",Font.BOLD,18));
buttonMod = new JButton("%");
buttonMod.setForeground(new Color(220,140, 50));
buttonMod.setFont(new Font("Dialog",Font.BOLD,18));
buttonSqrt = new JButton("sqrt");
buttonSqrt.setForeground(new Color(20, 240, 255));
buttonSqrt.setFont(new Font("Dialog",Font.BOLD,18));
buttonDao = new JButton("1/x");
buttonDao.setForeground(new Color(240, 0, 255));
buttonDao.setFont(new Font("Dialog",Font.BOLD,24));
buttonEqual = new JButton("=");
buttonEqual.setForeground(new Color(255, 0, 255));
panel3.setLayout(new GridLayout(4, 6));
panel3.setBackground(new Color(220,250,250));
panel3.add(buttonMC);
/*add listener for all the compounent*/
buttonMC.addActionListener(this);
buttonMC.addMouseMotionListener(this);
panel3.add(button[7]);
button[7].addActionListener(this);
panel3.add(button[8]);
button[8].addActionListener(this);
panel3.add(button[9]);
button[9].addActionListener(this);
panel3.add(buttonDiv);
buttonDiv.addActionListener(this);
panel3.add(buttonSqrt);
buttonSqrt.addActionListener(this);
buttonSqrt.addMouseMotionListener(this);
panel3.add(buttonMR);
buttonMR.addActionListener(this);
buttonMR.addMouseMotionListener(this);
panel3.add(button[4]);
button[4].addActionListener(this);
panel3.add(button[5]);
button[5].addActionListener(this);
panel3.add(button[6]);
button[6].addActionListener(this);
panel3.add(buttonMul);
buttonMul.addActionListener(this);
buttonMul.addMouseMotionListener(this);
panel3.add(buttonMod);
buttonMod.addActionListener(this);
buttonMod.addMouseMotionListener(this);
panel3.add(buttonMS);
buttonMS.addActionListener(this);
buttonMS.addMouseMotionListener(this);
panel3.add(button[1]);
button[1].addActionListener(this);
panel3.add(button[2]);
button[2].addActionListener(this);
panel3.add(button[3]);
button[3].addActionListener(this);
panel3.add(buttonSub);
buttonSub.addActionListener(this);
buttonSub.addMouseMotionListener(this);
panel3.add(buttonDao);
buttonDao.addActionListener(this);
buttonDao.addMouseMotionListener(this);
panel3.add(buttonMAdd);
buttonMAdd.addActionListener(this);
buttonMAdd.addMouseMotionListener(this);
panel3.add(button[0]);
button[0].addActionListener(this);
panel3.add(buttonAddAndSub);
buttonAddAndSub.addActionListener(this);
buttonAddAndSub.addMouseMotionListener(this);
panel3.add(buttonDot);
buttonDot.addActionListener(this);
buttonDot.addMouseMotionListener(this);
panel3.add(buttonAdd);
buttonAdd.addActionListener(this);
buttonAdd.addMouseMotionListener(this);
panel3.add(buttonEqual);
buttonEqual.addActionListener(this);
buttonEqual.addMouseMotionListener(this);
/*set the property of the calculator window*/
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
frame.dispose();
try{
Thread.sleep(20);
}catch(Exception e1){}
Karl lili=new Karl();
lili.go();
}
});
frame.pack();
frame.setResizable(false);
frame.setBackground(new Color(220,250,250));
frame.setForeground(new Color(220,250,250));
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize=frame.getSize();
frame.setLocation( (screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
try{
Thread.sleep(500);
}catch(Exception e2){}
frame.setVisible(true);
frame.show();
}
/*set the action of all the button*/
public void mouseDragged(MouseEvent e){}
public void mouseMoved(MouseEvent e){
buttonEqual.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
buttonBk.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); buttonCe.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); buttonC.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
buttonMC.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
buttonMR.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
buttonMS.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
buttonMAdd.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
buttonDot.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
buttonAddAndSub.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
buttonAdd.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
buttonSub.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
buttonMul.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
buttonDiv.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
buttonMod.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
buttonSqrt.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
buttonDao.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
buttonEqual.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
for(int i=0;i<10;i++){
button[i].setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}
}
public void actionPerformed(ActionEvent event) {
/*judge if the number is float*/
boolean sign = false;
Object temp = event.getSource();
try {
for (int i = 0; i <= 9; i++)
if (temp == button[i] && clickable == true)
textAnswer.setText(textAnswer.getText()
+ Integer.toString(i));
if (temp == buttonDot && clickable == true) {
boolean isDot = false;
if (textAnswer.getText().length() == 0)
isDot = true;
for (int i = 0; i < textAnswer.getText().length(); i++)
if ('.' == textAnswer.getText().charAt(i)) {
isDot = true;
break;
}
if (isDot == false)
textAnswer.setText(textAnswer.getText() + ".");
}
if ((temp == buttonAdd || temp == buttonSub || temp == buttonMul || temp == buttonDiv)
&& clickable == true) {
/*+operate*/
if (temp == buttonAdd) {
switch (prekey) {
case 0:
answerd += Double.parseDouble(textAnswer.getText());
break;
case 1:
answerd -= Double.parseDouble(textAnswer.getText());
break;
case 2:
answerd *= Double.parseDouble(textAnswer.getText());
break;
case 3:
if (Double.parseDouble(textAnswer.getText()) == 0) {
textAnswer.setText("The divisor can not be zero");
clickable = false;
} else
answerd /= Double.parseDouble(textAnswer.getText());
break;
default:
answerd = Double.parseDouble(textAnswer.getText());
}
textAnswer.setText("");
prekey = key = 0;
}
/*-operator*/
if (temp == buttonSub) {
switch (prekey) {
case 0:
answerd += Double.parseDouble(textAnswer.getText());
break;
case 1:
answerd -= Double.parseDouble(textAnswer.getText());
break;
case 2:
answerd *= Double.parseDouble(textAnswer.getText());
break;
case 3:
if (Double.parseDouble(textAnswer.getText()) == 0) {
textAnswer.setText("The divisor can not be zero");
clickable = false;
} else
answerd /= Double.parseDouble(textAnswer.getText());
break;
default:
answerd = Double.parseDouble(textAnswer.getText());
}
textAnswer.setText("");
prekey = key = 1;
}
/* *opertor*/
if (temp == buttonMul) {
switch (prekey) {
case 0:
answerd += Double.parseDouble(textAnswer.getText());
break;
case 1:
answerd -= Double.parseDouble(textAnswer.getText());
break;
case 2:
answerd *= Double.parseDouble(textAnswer.getText());
break;
case 3:
if (Double.parseDouble(textAnswer.getText()) == 0) {
textAnswer.setText("The divisor can not be zero");
clickable = false;
} else
answerd /= Double.parseDouble(textAnswer.getText());
break;
default:
answerd = Double.parseDouble(textAnswer.getText());
}
//textAnser = "";
textAnswer.setText("");
prekey = key = 2;
}
/* / operator*/
if (temp == buttonDiv) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -