首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jbutton.setEnabled(false)不会禁用按钮输入

jbutton.setEnabled(false)不会禁用按钮输入
EN

Stack Overflow用户
提问于 2014-03-03 19:30:12
回答 1查看 9K关注 0票数 1

我有以下两门课:

#1

代码语言:javascript
运行
复制
public class LobbyView extends JPanel
{       

    private final JButton sendGameRequestButton = new JButton();

    public JButton getSendGameRequestButton()
    {
        return sendGameRequestButton;
    }

    LobbyView()
    {
        sendGameRequestButton.setPreferredSize(new Dimension(15, 20));
        sendGameRequestButton.setText("Send game request");
        sendGameRequestButton.addMouseListener(new LobbyListener(this));
        sendGameRequestButton.setEnabled(false);
    }
}

#2

代码语言:javascript
运行
复制
public class LobbyListener implements MouseListener
{
    LobbyView lobbyView;

public LobbyListener(LobbyView sentLobbyView)
{
    lobbyView = sentLobbyView;
}

@Override
public void mouseClicked(MouseEvent e)
{
    if (e.getButton() == 1)
    {      
        if (e.getSource() == lobbyView.getSendGameRequestButton())
        {
            System.out.println("You pushed the disabled button");
        }
    }
}

即使我在JButton构造函数中禁用了LobbyView,我仍然可以单击它并得到消息“您按下了禁用的按钮”。

component.setEnabled(false)实际上是禁用一个组件,还是只对其进行灰色处理以使其看起来是禁用的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-03 19:32:58

即使在JButton构造函数中禁用了LobbyView,我仍然可以单击它。

这是正确的。您不应该使用MouseListner。MouseListener独立于按钮的状态工作。

相反,您应该使用ActionListener。有关更多信息,请阅读有关如何使用按钮的Swing教程中的部分。或者还有一个关于How to Write an Action Listener的章节。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22155563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档