我对编程非常陌生,我完全迷失在这个家庭作业上。任务是要有一个显示两个不同骰子的gui。当我点击按钮的随机数生成器应该有骰子的不同图像出现。我可以让我的图像出现时,我没有任何"如果"语句,所以我知道路径是工作的。当我添加"if"语句来为其中一个骰子分配图像时,我得到一个错误,它无法找到符号。因为当图标被静态分配时,这是有效的,我认为这是导致问题的"if"语句,但它可能会回到随机数。请告诉我哪里做错了。所附代码仅包含左模的非工作代码。
private class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
Random randomNumbers = new Random(); // Generates random numbers
int valLeft; // holds random number
int valRight; // holds random number
// get values for the dice
valLeft = randomNumbers.nextInt(6)+1; // range 1-6
valRight = randomNumbers.nextInt(6)+1; // range 1-6
// assign the image for the left die
if (valLeft==1)
{
ImageIcon leftDie = new ImageIcon("Die1.png");
}
if (valLeft==2)
{
ImageIcon leftDie = new ImageIcon("Die2.png");
}
if (valLeft==3)
{
ImageIcon leftDie = new ImageIcon("Die3.png");
}
if (valLeft==4)
{
ImageIcon leftDie = new ImageIcon("Die4.png");
}
if (valLeft==5)
{
ImageIcon leftDie = new ImageIcon("Die5.png");
}
if (valLeft==6)
{
ImageIcon leftDie = new ImageIcon("Die6.png");
}
// put image on label
imageLabelLeft.setIcon(leftDie);
// assign the image for the right die
ImageIcon rightDie = new ImageIcon("Die6.png");
imageLabelRight.setIcon(rightDie);
// remove the text from the labels
imageLabelLeft.setText(null);
imageLabelRight.setText(null);
// repack the frame for the new images
pack();
}
}
您正面临范围问题,leftDie
范围仅限于if块,请将ImageIcon leftDie ==
从if
语句中移出。修改代码:
if (valLeft==1)
{
ImageIcon leftDie = new ImageIcon("Die1.png");
}
像这样:
ImageIcon leftDie = null;
if (valLeft==1)
{
leftDie = new ImageIcon("Die1.png");
}