2015-12-08 211 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);