java – 如何禁用JButton在禁用时变灰?
发布时间:2020-12-15 04:59:13 所属栏目:Java 来源:网络整理
导读:我必须写一个纸牌游戏.单击一张卡时会生成随机卡片图像,但由于您只能单击该卡片一次,因此单击该按钮后将被禁用.如何在卡片图像被点击后停止变灰,以便新生成的卡片图像清晰可见? //Actions performed when an event occurspublic void actionPerformed(Actio
我必须写一个纸牌游戏.单击一张卡时会生成随机卡片图像,但由于您只能单击该卡片一次,因此单击该按钮后将被禁用.如何在卡片图像被点击后停止变灰,以便新生成的卡片图像清晰可见?
//Actions performed when an event occurs public void actionPerformed(ActionEvent e) { if (e.getSource() == card1) { randomInteger(); card1.setIcon(cardImages[randomInt]); card1.setEnabled(false); } else if (e.getSource() == card2) { randomInteger(); card2.setIcon(cardImages[randomInt]); card2.setEnabled(false); } else if (e.getSource() == card3) { randomInteger(); card3.setIcon(cardImages[randomInt]); card3.setEnabled(false); } else if (e.getSource() == card4) { randomInteger(); card4.setIcon(cardImages[randomInt]); card4.setEnabled(false); } else { randomInteger(); card5.setIcon(cardImages[randomInt]); card5.setEnabled(false); } } } 解决方法
您只需将按钮的禁用图标设置为与按钮图标相同的值即可.看这个例子:
在左侧是一个按钮,我在其中设置了icon和disabledIcon.在右边我只设置了图标: import java.awt.BorderLayout; import java.net.MalformedURLException; import java.net.URL; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.SwingUtilities; public class TestDisabledButtons { public static final String CARD_URL = "http://assets0.wordansassets.com/wvc-1345850020/wordansfiles/images/2012/8/24/156256/156256_340.jpg"; protected void createAndShowGUI() throws MalformedURLException { JFrame frame = new JFrame("Test button"); frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); ImageIcon imageIcon = new ImageIcon(new URL(CARD_URL)); JButton button = new JButton(imageIcon); JButton button2 = new JButton(imageIcon); button.setDisabledIcon(imageIcon); button.setEnabled(false); button2.setEnabled(false); frame.add(button,BorderLayout.WEST); frame.add(button2,BorderLayout.EAST); frame.pack(); frame.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { try { new TestDisabledButtons().createAndShowGUI(); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |