【发布时间】:2012-03-05 02:12:24
【问题描述】:
我在 gui 中掷骰子。我得到了我想要返回的数字(随机整数 1-6),但我想要显示的图像没有显示出来。它第一次显示正确的图像,但从不改变它。这是代码:
public void layoutComponents()
{
Container container = frame.getContentPane();
container.setLayout(new GridLayout(1, 1));
diceRoll.setEditable(true);
container.add(button);
container.add(addPanel());
//container.add(diceRoll);
frame.setSize(200, 200);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
class DiceActions implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
layoutComponents();
//diceRoll.append(Double.toString((int)numberRolled));
}
}
public ImageIcon rollDice()
{
double numberRolled = (int)(Math.random() * 10 + 1);
ImageIcon image = dice1;
if (numberRolled > 6)
{
numberRolled -= 4;
}
if(numberRolled == 1)
{
image = dice1;
System.out.println("1");
System.out.println(numberRolled);
return image = dice1;
}
else if(numberRolled == 2)
{
image = dice2;
System.out.println("2");
return image = dice2;
}
else if(numberRolled == 3)
{
image = dice3;
System.out.println("3");
return image = dice3;
}
else if(numberRolled == 4)
{
image = dice4;
System.out.println("4");
return image = dice4;
}
else if(numberRolled == 5)
{
image = dice5;
System.out.println("5");
return image = dice5;
}
else if(numberRolled == 6)
{
image = dice6;
System.out.println("6");
return image = dice6;
}
else
System.out.println("never reached");
System.out.println(numberRolled);
return image;
}
public JPanel addPanel()
{
JPanel panel = new JPanel();
panel.add(new JLabel(rollDice()));
return panel;
}
public void addListeners()
{
DiceActions action = new DiceActions();
button.addActionListener(action);
}
【问题讨论】:
-
一直显示 dice1 图片
-
1) 为了尽快获得更好的帮助,请发帖 SSCCE。 2) 请对代码块使用一致且符合逻辑的缩进。
-
所以,您希望我们告诉您 GUI 代码哪里出错了,但您没有给我们所有代码。自己研究它的一种方法是将其缩减为必需品。如果你仍然没有发现你的问题,那么它可能会小到足以发布整个问题。
标签: java swing user-interface random