我只想通過通知您這是我第一次發佈這篇文章的前言,因此如果有任何錯誤,請告訴我。如何使用另一個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