(1)編寫一個簡易計算器程序,其界面如下圖所示:
(2)當按下“+”按鈕時,兩個數值文本框之間應顯示“+”號,同時相加結果顯示在第三個文本框內(如下圖所示)。類似處理“-”、“*”和“/”按鈕。
現在第二步能夠出現加號 就是不能正確運算。如下代碼,注釋的地方為什麼不能運行,該怎麼做才能做到當按下加的按鈕b1時,同時出現加號和得數?這裡的tf和tf1是要計算的兩個數
```b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Object obj=e.getSource();
//int a=Integer.getInteger(tf.getText());
//int b=Integer.getInteger(tf1.getText());
//int result;
//result=a+b;
if(obj==b1){
//tf2.setText(Integer.toString(result));
l1.setText("+");
}
}
});
`
現在不能設計上述的第二步
建議采用分而治之的思想
1--首先要進行運算,那麼你就設計運算的類Operator
它裡面有 add minus等計算方法能夠實現我們的運算.
這個可以融合工廠方法模式和單例模式設計,有興趣可以了解下
2--為了把操作符顯示到界面上面,你需要定義一個lable的控件在2個輸入框之間,類似你定義的等號一樣
後面可以改變lable的值
建議你把這個界面的表示都寫在property文件中,然後程序從property文件中讀取界面的表示文字。
可以了解下程序如何讀取propertiy文件的內容
3--為了能夠使按鈕觸發事件動起來,你要注冊監聽器
可以使用你這個界面類自身充當監聽器
在你的類頭處加上 implements ActionListener
然後讓button注冊監聽器
plus.addActionListener(this);
minus.addActionListener(this);
...
...
然後實現接口方法
public void actionPerformed(ActionEvent e){
//加法按鈕壓下
if(e.getSource()==plus){
//先把那個lable的文字顯示成這個+
lable.setText("+");
} else if(e.getSource == minus){
....
}...
//然後讀取兩個text框中的數字
//然後調用你那個Operator類進行對應的運算
//把結果寫到這個輸出框中
}