gpt4 book ai didi

java - jbutton.setEnabled(false) 不禁用按钮输入

转载 作者:行者123 更新时间:2023-11-29 07:49:44 26 4
gpt4 key购买 nike

我有以下两个类:

#1

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

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

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

component.setEnabled(false) 是否实际上禁用了一个组件,或者只是将其灰显以使其看起来已禁用?

最佳答案

Even though I disabled the JButton in the LobbyView constructor, I can still click it

没错。你不应该使用 MouseListner。 MouseListener 的工作独立于按钮的状态。

相反,您应该使用 ActionListener。阅读 How to Use Buttons 上的 Swing 教程部分了解更多信息。或者还有关于 How to Write an Action Listener 的部分。

关于java - jbutton.setEnabled(false) 不禁用按钮输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22155563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com