我只想通过通知您这是我第一次发布这篇文章的前言,因此如果有任何错误,请告诉我。如何使用另一个JButton关闭JButton
我正在尝试编写我的高中计算机数学(编程)类的二十一点游戏,我有很多错误,但真正讨厌的是这一个。
我的图形用户界面有两个JButtons,一个打我按钮,“打我”,一个站立按钮,“站”。击中我使用Math.random
给玩家一张卡,并跟踪看看他们是否破产。当玩家点击它时,Stand按钮需要禁用Hit Me按钮。我搜索了这个网站的答案,我得到的是使用setEnabled方法并将其设置为HitMe.setEnabled(false)。我还发现,人谁说这些Jbutton需要设置最终使得:
final JButton name = new JButton("");
所以,我设置了Jbutton将最终并插入了的ActionListeners在代码中setEnabled
方法,例如
private class StandListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
HitMe.setEnabled(false);
}
}
和
final JButton HitMe = new JButton("Hit Me");
的set.Enabled(false)
在ActionListener代码中不起作用。 “最终”标识符也不起作用。我真的需要帮助,所以尽快提供任何帮助表示赞赏。
我稍后会发布一些更多的问题。 :) 2014
编辑4月17日:
我写这一点,因为我刚刚意识到,如果有人看这个页面,他们可以诊断我得到了错误。如果这对你的答案有影响,我使用jGrasp进行我的java编码。
下面是错误:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at PlayerBoxClubs$StandListener.actionPerformed(PlayerBoxClubs.java:105)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
你确定你的程序通过在'actionPerformed'?如果不是,你可能没有将'actionPerformed'链接到你的'JButton' –
为了尽快得到更好的帮助,请发布[MCVE](http://stackoverflow.com/help/mcve)(最小完整和可验证示例)。 –
@CladClad,你是什么意思,“你确定你的程序通过了actionPerformed”?我确实链接了JButton和actionPerformed。 – Ungeheuer