新手
5月14 13:16 1文件名:Calculate_GUI.java
導入javax . swing . *;
導入Java . awt . container;
導入Java . awt . event . *;
公共類Calculate_GUI擴展了JFrame{
private JPanel p 1;
private JButton key button[]= new JButton[16],signButton,clearButton,deleteButton
私有JTextField outputField
私有容器contentPane
私有布爾firstInput = true
private Calculate_Model模型= new Calculate _ Model();
公共計算_GUI(){
p 1 = new JPanel();
key button[0]= new JButton(" 1 ");
key button[1]= new JButton(" 2 ");
key button[2]= new JButton(" 3 ");
key button[3]=新的JButton("/");
key button[4]= new JButton(" 4 ");
key button[5]= new JButton(" 5 ");
key button[6]= new JButton(" 6 ");
key button[7]=新的JButton(" * ");
key button[8]= new JButton(" 7 ");
key button[9]= new JButton(" 8 ");
key button[10]= new JButton(" 9 ");
key button[11]=新JButton("-");
key button[12]= new JButton(" 0 ");
key button[13]=新的JButton(" . ");
key button[14]=新的JButton(" = ");
key button[15]=新的JButton("+");
clear button = new JButton(" c ");
sign button = new JButton("+/-");
delete button = new JButton("↓";
output field = new JTextField(15);
output field . settext(" 0 ");
output field . set editable(false);
content pane = this . getcontentpane();
this.setSize(250,250);
p 1 . set layout(new Java . awt . gridlayout(4,5));
for(int I = 0;我& ltkeyButton.lengthi++){
if(I = = 4)p 1 . add(delete button);
if(I = = 8)p 1 . add(clear button);
if(I = = 12)p 1 . add(sign button);
按鍵按鈕[i]。set font(new Java . awt . font(" Dialog ",1,16));
p 1 . add(key button[I]);
}
contentPane.add(outputField,Java . awt . borderlayout . north);
contentPane.add(p1,Java . awt . borderlayout . center);
this . show();
}
public void registent(){
this . addwindowlistener(new window adapter(){
public void window closing(window event we){ system . exit(0);}
});
for(int I = 0;我& ltkeyButton.lengthi++){
按鍵按鈕[i]。addActionListener(new keyButtonHandler());
}
sign button . addactionlistener(new action listener(){
public void action performed(action event AE){
output field . settext(string . value of(model . to sign(double . parse double(output field . gettext()))));
}
});
delete button . addactionlistener(new action listener(){
public void action performed(action event AE){
output field . settext(model . back space(output field . gettext()));
if(outputField.getText()。equals(" 0 "))first input = true;
}
});
clear button . addactionlistener(new action listener(){
public void action performed(action event AE){
firstInput = true
output field . settext(" 0 ");
model . reset();
}
});
}
類keyButtonHandler實現ActionListener{
public void action performed(action event AE){
char action command = AE . getaction command()。charAt(0);
開關(動作命令){
大小寫“1”:大小寫“2”:大小寫“3”:大小寫“4”:大小寫“5”:大小寫“6”:大小寫“7”:大小寫“8”:大小寫“9”:大小寫“0”:大小寫。”:
if(first input){ output field . settext(string . value of(action command));firstInput = false}
else output field . settext(output field . gettext()+action command);
打破;
大小寫'+':大小寫'-':大小寫' * ':大小寫'/':
if(first input)model . set operate(action command);
否則{
model . setoperatenumber(double . parse double(output field . gettext()));
model . calculating();
model . set operate(action command);
output field . settext(string . value of(model . get result()));
firstInput = true
}
打破;
大小寫“=”:
if(firstInput){
model . calculating();
output field . settext(string . value of(model . get result()));
}
否則{
model . setoperatenumber(double . parse double(output field . gettext()));
model . calculating();
output field . settext(string . value of(model . get result()));
firstInput = true
}
} } }
公共靜態void main(String args[]){
新的Calculate_GUI()。registEvent();
}
}
2文件名Calculate_Model.java
公共類Calculate_Model{
私雙結果;
私有雙操作數;
私人充電操作;
public Calculate_Model(){
結果= 0;
operator number = 0;
operate =“”;
}
public void setResult(double n){
結果= n;
}
public void setOperate(char o){
operate = o;
}
public void setOperateNumber(雙n){
operate number = n;
}
public double getResult(){
返回結果;
}
公共void計算(){
開關(操作){
案例“”:result = operateNumber打破;
case“+”:result+= operate number;打破;
case '-':result-= operate number;打破;
case“*”:result * = operator number;打破;
case“/”:result/= operate number;打破;
}
}
公共void重置(){
結果= 0;
operator number = 0;
operate =“”;
}
公共雙符號(雙n){
返回0-(n-0);
}
公共字符串退格(字符串n){
String reResult = " 0
嘗試{
reResult=n.substring(0,n . length()-1);
double . parse double(re result);
}
catch(NumberFormatException e){ re result = " 0 ";}
返回reResult
}
}
同壹目錄中的兩個文件;
javac compute _ GUI . Java
javac計算模型. java
java計算_圖形用戶界面