2015-12-08 210 views
0

我有一個問題,我的Java應用程序。 我在java swing上創建了一個骰子角色遊戲,爲每個骰子創建了單獨的對象,每次在我的框架上顯示不同的骰子數字時,每次點擊throw按鈕時都會發出jcheckboxes的問題。 我希望當複選框被選中時,骰子會保持這個數字並且不會改變。java swing複選框java swing

我想這是這樣的:

if(ch1.isSelected() == true){ 
    ch1.setSelected(true); 
    Die[0].setValue(0);  
} 

CH1是我的複選框,我想保持經常檢查,保持0值,但是當按鈕按下扔,它仍然給了骰子的隨機數。

也許你知道如何保持複選框始終檢查?

+1

你可以做ch1.s​​etEnabled(false)使它不可切換..但是這不會擊敗複選框的目的嗎? – liquidsystem

+0

考慮提供一個[可運行示例](https://stackoverflow.com/help/mcve),它演示了您的問題。這不是代碼轉儲,而是您正在做的事情的一個例子,它突出了您遇到的問題。這將導致更少的混淆和更好的迴應 – MadProgrammer

回答

0

試試這個:

private void ch1MouseClicked(java.awt.event.MouseEvent evt) {           
    Die[0].setValue(0); 
} 
+0

我有一個方法,在行動監聽器類中的一切,它不以那種方式 – Morsfmo

+0

ActionListener,但是mouseEventListener ... – liquidsystem

+0

我也只是自己測試它,並且它似乎[正在工作](http://puu.sh/lOj22/ea825dc839.png) – liquidsystem

0

)動作監聽器在那裏我有我的對象,並將它們從那裏

公共無效myDices(廣東話訪問{

Die[] Die = new Die[10]; 
    Die[0] = new Die(); 
    Die[1] = new Die(); 
    Die[2] = new Die(); 
    Die[3] = new Die(); 
    Die[4] = new Die(); 
    Die[5] = new Die(); 
    Die[6] = new Die(); 
    Die[7] = new Die(); 
    Die[8] = new Die(); 
    Die[9] = new Die(); 

    diceClass.roll(Die); 
    diceClass.display(Die); 
0

創建這裏面的方法骰子對象:

public class Dice { 

private boolean canRoll; 
private int value; 

public Dice() { 
    canRoll = false; 
    value = 0; 
} 

public int roll() 
{ 
    if(canRoll) { 
     // Roll the dice! 
     value = /* Roll algorithem */; 
    } 
    return value; 
} 

public void setCanRoll(boolean k) 
{ 
this.canRoll = k; 
} 

} 

比創建一個骰子對象數組。您可以使用setCanRoll(boolean k)方法設置canRoll布爾值。滾動骰子並將輸出打印到屏幕上。

如果這不是你的意思可能是:ch1.s​​etEditable(false);