Swing JButton類

2019-10-16 22:10:25

JButton類是按鈕的實現。該元件具有標籤,並在按下時生成事件。它也可以有一個影象。

類宣告

以下是javax.swing.JButton類的宣告 -

public class JButton
   extends AbstractButton
      implements Accessible

類建構函式

編號 建構函式 描述
1 JButton() 建立一個沒有設定文字或圖示的按鈕。
2 JButton(Action a) 建立一個按鈕,屬性取自提供的Action。
3 JButton(Icon icon) 建立一個帶圖示的按鈕。
4 JButton(String text) 建立一個包含文字的按鈕。
5 JButton(String text, Icon icon) 建立一個包含初始文字和圖示的按鈕。

類方法

編號 方法 描述
1 AccessibleContext getAccessibleContext() 獲取與此JButton關聯的AccessibleContext
2 String getUIClassID() 返回一個字串,該字串指定呈現此元件的L&F類的名稱。
3 boolean isDefaultButton() 獲取defaultButton屬性的值,如果為true,則表示此按鈕是JRootPane的當前預設按鈕。
4 boolean isDefaultCapable() 獲取defaultCapable屬性的值。
5 protected String paramString() 返回此JButton的字串表示形式。
6 void removeNotify() 覆蓋JComponent.removeNotify以檢查此按鈕當前是否設定為RootPane上的預設按鈕。如果是,請將RootPane的預設按鈕設定為null,以確保RootPane不會保留無效的按鈕參照。
7 void setDefaultCapable(boolean defaultCapable) 設定defaultCapable屬性,該屬性確定是否可以將此按鈕設定為其根窗格的預設按鈕。
8 void updateUI() 將UI屬性重置為當前外觀的值。

方法繼承

該類繼承以下類中的方法 -

  • javax.swing.AbstractButton
  • javax.swing.JComponent
  • java.awt.Container
  • java.awt.Component
  • java.lang.Object

JButton範例

使用編輯器建立以下Java程式:SwingButton.java

// package com.yiibai.swing;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class SwingButton {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;

   public SwingButton(){
      prepareGUI();
   }
   public static void main(String[] args){
       SwingButton  swingControlDemo = new SwingButton();      
      swingControlDemo.showButtonDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java Swing JButton範例");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));

      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new JLabel("", JLabel.CENTER);        
      statusLabel = new JLabel("",JLabel.CENTER);    
      statusLabel.setSize(350,100);

      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   private static ImageIcon createImageIcon(String path, String description) {
      java.net.URL imgURL = SwingButton.class.getResource(path);
      if (imgURL != null) {
         return new ImageIcon(imgURL, description);
      } else {            
         System.err.println("Couldn't find file: " + path);
         return null;
      }
   }   
   private void showButtonDemo(){
      headerLabel.setText("Control in action: Button"); 

      //resources folder should be inside SWING folder.
      ImageIcon icon = createImageIcon("/resources/java_icon.jpg","Java");

      JButton okButton = new JButton("好了");        
      JButton javaButton = new JButton("提交", icon);
      JButton cancelButton = new JButton("取消", icon);
      cancelButton.setHorizontalTextPosition(SwingConstants.LEFT);   

      okButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            statusLabel.setText("'好了'按鈕提交");
         }          
      });
      javaButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            statusLabel.setText("'提交'按鈕提交");
         }
      });
      cancelButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            statusLabel.setText("'取消'按鈕提交");
         }
      });
      controlPanel.add(okButton);
      controlPanel.add(javaButton);
      controlPanel.add(cancelButton);       

      mainFrame.setVisible(true);  
   }
}

執行上面範例程式碼,得到以下結果:

Swing JButton