私はguiでサイコロを転がしています。返される番号(ランダムint 1-6)が表示されていますが、表示したい画像が表示されません。最初に正しい画像を表示しますが、決して変更しません。ここでは、コードは次のようになります。JAVA。サイコロを印刷するGUI
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);
}
ダイス1の画像を表示し続ける – user1198199
1)すぐに役立つように、[SSCCE](http://sscce.org/)を投稿してください。 2)コードブロックには一貫性のある論理インデントを使用してください。 –
GUIコードがどこで間違っているのかを教えてもらいたいが、すべてのコードを渡す必要はない。あなた自身でそれを研究する一つの方法は、それを本質的に切り取ることです。それでも問題が見つからない場合は、おそらく全体を投稿するのに十分な大きさになります。 – arcy