天天看點

圖形使用者界面(一)GUI元素

在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就像一個房間,東西放在房間裡

圖形化的東西有種特殊的吸引力,畢竟是能看到的實實在在的東西。