?? calcultor.java
字號:
package calcultor;
/*
* 計算器
*/
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JOptionPane;
public class Calcultor {
private JFrame frame;
private JTextField field;
private JButton clear;
private JButton[] buttons;
private char operator;
private double number1,number2;
public Calcultor(){
frame = new JFrame("范金瑞的計算器 v1.0");
field = new JTextField(20);
frame.setLayout(new BorderLayout());
clear = new JButton("C");
buttons = new JButton[16];
String str = "123+456-789*0/.=";
for(int i = 0;i<buttons.length;i++){
buttons[i]= new JButton(str.charAt(i)+"");
}
init();
addEventListener();
addEventListener1();
frame.setSize(300,200);
frame.setVisible(true);
// frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
}
public void init(){
JPanel north = new JPanel();
JPanel center = new JPanel();
north.setLayout(new FlowLayout());
center.setLayout(new GridLayout(4,4,5,5));
north.add(field);
north.add(clear);
for(int i = 0;i<buttons.length;i++){
center.add(buttons[i]);
}
frame.add(north,BorderLayout.NORTH);
frame.add(center,BorderLayout.CENTER);
}
public void addEventListener(){
for(int i = 0;i<buttons.length;i++){
buttons[i].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand().trim();
if("0123456789.".indexOf(str)!=-1){//"0123456789.".indexOf(str)!=-1
field.setText(field.getText()+str);
return;
}
if("+-*/".indexOf(str)!=-1){
number1=Double.parseDouble(field.getText());
field.setText("");
operator = str.charAt(0);
return;
}
if(str.equals("=")){
number2 = Double.parseDouble(field.getText());
double result = 0.0;
switch(operator){
case '+': result = number1+number2;break;
case '-' :result = number1-number2;break;
case '*' :result = number1*number2;break;
case '/' :result = number1/number2;break;
}
field.setText(result+"");
return;
}
}
});
}
clear.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
field.setText(null);
number1 = 0.0;
number2 = 0.0;
operator='\u0000';
return;
}
});
}
public void addEventListener1(){
frame.addWindowListener(new WindowListener(){
public void windowActivated(WindowEvent e) {
}
public void windowClosed(WindowEvent e) {
}
public void windowClosing(WindowEvent e) {
int op = JOptionPane.showConfirmDialog(frame, "真的確認要退出程序么?", "確認退出", JOptionPane.YES_NO_OPTION);
if(op == JOptionPane.YES_OPTION){
System.exit(0);
}
}
public void windowDeactivated(WindowEvent e) {
}
public void windowDeiconified(WindowEvent e) {
}
public void windowIconified(WindowEvent e) {
}
public void windowOpened(WindowEvent e) {
}
});
}
/**
* @param args
*/
public static void main(String[] args) {
new Calcultor();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -