我已经看到了一些其他问题和答案,我已经做了同样的事情,但我无法弄清楚为什么我的程序无法正常工作。我已经测试过代码,并且它能正常工作,直到它应该显示图像。它甚至将imageNumber的字符串更改为图片的名称,但不会显示它。以下是我有:程序将不会显示图片,我不知道为什么
import javax.swing.*;
import java.awt.event.*;
import java.util.Random;
public class DiceRollGUI {
private static JPanel panel = new JPanel();
private static String imageNumber = "No Set Image";
private static JLabel image = new JLabel(new ImageIcon(imageNumber));
private static JButton rollDie = new JButton("Roll die");
public static void main(String[] args) {
JFrame frame = new JFrame("Dice Roll GUI");
JLabel labelOne = new JLabel("Press 'Roll' to roll the 6 sided die.");
rollDie.setActionCommand("Roll");
rollDie.addActionListener(new Button());
frame.setVisible(true);
frame.setSize(600, 700);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(panel);
panel.add(labelOne);
panel.add(rollDie);
}
public static class Button implements ActionListener {
public void actionPerformed(ActionEvent event) {
String command = event.getActionCommand();
Random random = new Random();
int randomNum = random.nextInt(6) + 1;
if (command.equals("Roll")) {
switch (randomNum) {
case 1:
imageNumber = ("dice1.png");
break;
case 2:
imageNumber = ("dice2.png");
break;
case 3:
imageNumber = ("dice3.png");
break;
case 4:
imageNumber = ("dice4.png");
break;
case 5:
imageNumber = ("dice5.png");
break;
default:
imageNumber = ("dice6.png");
break;
}
panel.add(image);
rollDie.setText("Roll Again");
imageNumber = ("No Set Image");
}
}
}
}
你永远不会改变'actionPerformed'方法中标签的'Icon' – MadProgrammer