作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下两个类:
#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/
我是一名优秀的程序员,十分优秀!