我已經看到了一些其他問題和答案,我已經做了同樣的事情,但我無法弄清楚爲什麼我的程序無法正常工作。我已經測試過代碼,並且它能正常工作,直到它應該顯示圖像。它甚至將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