Java實現圖形化介面的計算器加法小程式
阿新 • • 發佈:2018-12-15
對於一個簡單的計算器加法小程式,它首先是由五個元件構成的,三個文字框,兩個用來輸入數字,一個用來輸出最後的結果,接下來是一個標籤,標籤的內容是加號,表示這裡計算的是加法,最後一個組建是一個按鈕,點選該按鈕時會輸出計算的結果.在這個小程式中,我們採用的佈局管理器時FlowLayout.基本元素就是這些,接下來我們將演示兩種實現的方法:
(1)傳遞成員區域性變數的方法,具體程式碼如下:
package 例項11; import java.awt.*; import java.awt.event.*; public class Test { public static void main(String[]args){ new MyFrame().launchMyFrame(); } } class MyFrame extends Frame{ public void launchMyFrame(){ TextField tf1 = new TextField(); TextField tf2 = new TextField(); TextField tf3 = new TextField(); Label l = new Label("+"); Button b = new Button("="); Monitor m = new Monitor(tf1, tf2, tf3); //通過構造方法將三個區域性變數傳遞Monitor b.addActionListener(m); setLayout(new FlowLayout()); add(tf1); add(l); add(tf2); add(b); add(tf3); pack(); setVisible(true); } } class Monitor implements ActionListener{ TextField tf1, tf2, tf3; public Monitor(TextField tf1, TextField tf2, TextField tf3){ this.tf1 = tf1; this.tf2 = tf2; this.tf3 = tf3; } public void actionPerformed(ActionEvent e){ int a = Integer.parseInt(tf1.getText()); int b = Integer.parseInt(tf2.getText()); int c = a + b; tf3.setText(""+c); System.out.println(c); } }
(2)傳遞引用的方式,具體程式碼如下:
package 例項11; import java.awt.*; import java.awt.event.*; public class Test { public static void main(String[]args){ new MyFrame().launchMyFrame(); } } class MyFrame extends Frame{ TextField tf1, tf2, tf3; public void launchMyFrame(){ tf1 = new TextField(); tf2 = new TextField(); Label l = new Label("+"); Button b = new Button("="); Monitor m = new Monitor(this); b.addActionListener(m); setLayout(new FlowLayout()); add(tf1); add(l); add(tf2); add(b); add(tf3); pack(); setVisible(true); } } class Monitor implements ActionListener{ MyFrame mf = null; public Monitor(MyFrame mf){ this.mf = mf; } public void actionPerformed(ActionEvent e){ int a = Integer.parseInt(mf.tf1.getText()); int b = Integer.parseInt(mf.tf2.getText()); int c = a + b; mf.tf3.setText(""+c); System.out.println(c); } }
總結:通常使用第二種方法比較好,因為只需要在事件監聽器中接收引起事件發生的類的引用即可,無需知道該類中具體的成員.