<pre name="code" class="java">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: button演示</p>
* <p>Description: 提供一个button的演示。怎样实现button和是一个button失效</p>
* <p>Copyright: Copyright (c) 2014</p>
* <p>Filename: </p>
* @author 王海涛
* @version 0.1
*/
public class ButtonDemo extends JPanel
implements ActionListener {
protected JButton b1, b2, b3;
/**
*<br>方法说明:构造器,初始图形界面构建
*<br>输入參数:
*<br>返回类型:
*/
public ButtonDemo() {
b1 = new JButton("失效中间button(D)");
b1.setVerticalTextPosition(AbstractButton.CENTER);//水平中间对齐
b1.setHorizontalTextPosition(AbstractButton.LEADING);//相当于LEFT
b1.setMnemonic(KeyEvent.VK_D);//将b1邦定alt+D键
b1.setActionCommand("disable");
b2 = new JButton("M中间button");
b2.setVerticalTextPosition(AbstractButton.BOTTOM);
b2.setHorizontalTextPosition(AbstractButton.CENTER);
b2.setMnemonic(KeyEvent.VK_M);//将b2邦定alt+M键
b3 = new JButton("E激活中间button");
b3.setMnemonic(KeyEvent.VK_E);//将b3邦定alt+E键
b3.setActionCommand("enable");
b3.setEnabled(false);
//给1和3加入事件监听
b1.addActionListener(this);
b3.addActionListener(this);
//设置button提示文本
b1.setToolTipText("使中间的button失效。");
b2.setToolTipText("没有不论什么的事件发生!
"); b3.setToolTipText("使中间的button有效"); //将button加入到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 图标对象 */ /** *<br>方法说明:主方法 */ public static void main(String[] args) { //设置使用新的swing界面 JFrame.setDefaultLookAndFeelDecorated(true); //创建一个窗口 JFrame frame = new JFrame("Button_Demo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //setSize(iWidth,iHeight);//设置窗口大小 //创建一个面板 ButtonDemo newContentPane = new ButtonDemo(); newContentPane.setOpaque(true); frame.setContentPane(newContentPane); //显示窗口 frame.pack(); frame.setVisible(true); } }