import java.awt.*;
import java.awt.event.*;
import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.ImageIcon;
/**
* <p>Title: 按鈕演示</p>
* <p>Description: 提供一個按鈕的演示。如何實現按鈕和是一個按鈕失效</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Filename: </p>
* @version 1.0
*/
public class ButtonDemo extends JPanel
implements ActionListener {
protected JButton b1, b2, b3;
/**
*<br>方法說明:構造器,初始圖形界面構建
*<br>輸入參數:
*<br>返回類型:
*/
public ButtonDemo() {
ImageIcon leftButtonIcon = createImageIcon("images/right.gif");
ImageIcon middleButtonIcon = createImageIcon("images/middle.gif");
ImageIcon rightButtonIcon = createImageIcon("images/left.gif");
b1 = new JButton("失效中間按鈕(D)", leftButtonIcon);
b1.setVerticalTextPosition(AbstractButton.CENTER);//水平中間對齊
b1.setHorizontalTextPosition(AbstractButton.LEADING);//相當於LEFT
b1.setMnemonic(KeyEvent.VK_D);//將b1邦定alt+D鍵
b1.setActionCommand("disable");
b2 = new JButton("M中間按鈕", middleButtonIcon);
b2.setVerticalTextPosition(AbstractButton.BOTTOM);
b2.setHorizontalTextPosition(AbstractButton.CENTER);
b2.setMnemonic(KeyEvent.VK_M);//將b2邦定alt+M鍵
b3 = new JButton("E激活中間按鈕", rightButtonIcon);
b3.setMnemonic(KeyEvent.VK_E);//將b3邦定alt+E鍵
b3.setActionCommand("enable");
b3.setEnabled(false);
//給1和3添加事件監聽
b1.addActionListener(this);
b3.addActionListener(this);
//設置按鈕提示文本
b1.setToolTipText("點擊這個按鈕,將使中間的按鈕失效!");
b2.setToolTipText("點擊這個按鈕,沒有任何的事件發生!");
b3.setToolTipText("點擊這個按鈕,將使中間的按鈕有效");
//將按鈕添加到JPanel中
add(b1);
add(b2);
add(b3);
}
/**
*<br>方法說明:事件處理
*<br>輸入參數:
*<br>返回類型:
*/
public void actionPerformed(ActionEvent e) {
if ("disable".equals(e.getActionCommand())) {
b2.setEnabled(false);
b1.setEnabled(false);
b3.setEnabled(true);
} else {
b2.setEnabled(true);
b1.setEnabled(true);
b3.setEnabled(false);
}
}
/**
*<br>方法說明:創建圖標,
*<br>輸入參數:String path 圖標所在的路徑
*<br>返回類型:ImageIcon 圖標對象
*/
protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL = ButtonDemo.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Couldn´t find file: " + path);
return null;
}
}
/**
*<br>方法說明:主方法
*<br>輸入參數:
*<br>返回類型:
*/
public static void main(String[] args) {
//設置使用新的swing界面
JFrame.setDefaultLookAndFeelDecorated(true);
//創建一個窗體
JFrame frame = new JFrame("ButtonDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//創建一個面板
ButtonDemo newContentPane = new ButtonDemo();
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);
//顯示窗體
frame.pack();
frame.setVisible(true);
}
}