J'essaye de créer un JMenuItem qui est désactivé par défaut, mais une méthode peut être appelée pour l'activer. Juste pour le moment pendant que je teste mon code, je veux que la méthode soit appelée quand je clique sur un autre élément du menu. J'ai jeté un coup d'oeil à la documentation de JMenuItem, mais je suis assez nouveau pour Java et j'ai du mal à trouver exactement ce dont j'ai besoin. J'ai essayé d'utiliser la commande updateUI(), mais moi qui n'a pas fonctionné, donc je suis complètement bloqué. Merci d'avance pour toute aide :)Mise à jour de JMenuItem via ActionListener
C'est ce que j'ai jusqu'à présent:
public class initialScreen extends JFrame implements ActionListener{
Dimension screenSize = new Dimension(800,600);
JMenuItem runE, newP;
public initialScreen(){
super("Experiment Control Suite");
setSize(screenSize);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar bar = new JMenuBar();
JMenuItem newP = new JMenuItem("New");
newP.addActionListener(this);
runE = new JMenuItem("Run");
runE.setEnabled(false);
runE.addActionListener(this);
JMenu exp = new JMenu("Experiment");
exp.add(runE);
JMenu par = new JMenu("Participant");
par.add(newP);
bar.add(exp);
bar.add(par);
setJMenuBar(bar);
setVisible(true);
}
public void enableRun(){
runE.setEnabled(true);
runE.updateUI();
}
public void actionPerformed(java.awt.event.ActionEvent e){
if(e.getSource() == newP) {
enableRun();
}
else if(e.getSource() == runE) {
System.out.println("run has been clicked");
}
}
}
Aha! Heureux que c'était une erreur stupide plutôt qu'un malentendu fondamental! Merci :) – thisisnic
pour les éléments de base +1 – mKorbel