J'ai vu d'autres questions et réponses et j'ai fait la même chose qu'eux, mais je n'arrive pas à comprendre pourquoi mon programme ne fonctionnera pas. J'ai testé le code et ça fonctionne bien jusqu'à quand il devrait afficher l'image. Il change même la chaîne de imageNumber au nom de l'image, mais ne l'affichera pas. Voici ce que j'ai:Le programme n'affiche pas les images et je ne sais pas pourquoi
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");
}
}
}
}
Vous ne changez jamais le 'Icon' de l'étiquette dans votre méthode' actionPerformed' – MadProgrammer