在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就像一個房間,東西放在房間裏
圖形化的東西有種特殊的吸引力,畢竟是能看到的實實在在的東西。