在Java中建立一個GUI程式至少需要用到這三類對象:
* 元件
* 事件
* 監聽器
PushCounter是一個啟動類,隻是顯示一個按鈕(标注為“Push Me!”),按下按鈕,計數器更新顯示最新結果。
效果如圖:
源程式如圖:
// PushCounter.java
//示範一個圖形化的使用者接口和監聽器
import javax.swing.JFrame;
public class PushCounter {
// 建立一個展示架構
public static void main(String[] args){
JFrame frame = new JFrame("Push Counter");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
PushCounterPanel panel = new PushCounterPanel();
frame.getContentPane().add(panel);
//pack方法根據架構中的内容把架構設定成合适的尺寸
frame.pack();
frame.setVisible(true);
}
}
//PushCounterPanel.java
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class PushCounterPanel extends JPanel {
private int count;
private JButton push;
private JLabel label;
public PushCounterPanel(){
count = 0;
push = new JButton("Push Me!");
push.addActionListener(new ButtonListener());
label = new JLabel("Pushes: " + count);
add(push);
add(label);
setBackground(Color.cyan);
setPreferredSize(new Dimension(300, 40));
}
// 當按鈕按下時更新标簽
private class ButtonListener implements ActionListener{
public void actionPerformed(ActionEvent arg0) {
count ++;
label.setText("Pushes: " + count);
}
}
}
這個程式中使用的元件包括:一個按鈕、顯示計數的标簽、容納按鈕和标簽的面闆,以及顯示面闆的架構。
JFrame就像一座樓,panel就像一個房間,東西放在房間裡
圖形化的東西有種特殊的吸引力,畢竟是能看到的實實在在的東西。