<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); } }