加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读