Supposons que l'utilisateur ait choisi des stations-service. Le cadre changera et l'utilisateur pourra choisir un emplacement et la liste des stations-service à cet endroit apparaîtra sous la liste déroulante.L'action JComboBox ne fonctionne pas
J'ai donc essayé d'ajouter un autre écouteur d'action à l'intérieur de l'instruction if, en utilisant un autre sinon if et j'ai également essayé des instructions switch mais les deux ne montreront pas la sortie. Alors, comment puis-je résoudre ce problème? Merci d'avance.
Ceci est la version abrégée de mon code avant d'ajouter la 2ème action auditeur
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Testing5 {
private JFrame frame1, frame2;
private ActionListener action, action2;
private JButton PetrolStations, back, Foods;
private JComboBox locationChooser;
final static String[] location = {"Petaling Jaya", "Port Klang", "Kuala Lumpur"};
public void HELPMEGUI() {
frame1 = new JFrame("Frame 1");
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel contentPanel = new JPanel(new GridLayout(5,2));
PetrolStations = new JButton ("PetrolStations");
Foods = new JButton ("Foods");
back = new JButton ("Back");
locationChooser = new JComboBox(location);
action = new ActionListener() {
public void actionPerformed(ActionEvent ae) {
JButton button = (JButton) ae.getSource();
if (button == PetrolStations) {
frame2 = new JFrame("FRAME 2");
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame2.add(locationChooser, BorderLayout.NORTH);
frame2.add(back, BorderLayout.SOUTH);
frame2.setSize(300, 300);
frame2.setLocationRelativeTo(null);
frame2.setVisible(true);
frame1.setVisible(false);
}
else if (button == Foods) {
frame2 = new JFrame("FRAME 2");
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame2.add(locationChooser, BorderLayout.NORTH);
frame2.add(back, BorderLayout.SOUTH);
frame2.setSize(300, 300);
frame2.setLocationRelativeTo(null);
frame2.setVisible(true);
frame1.setVisible(false);
}
else if (button == back) {
frame1.setVisible(true);
frame2.setVisible(false);
frame2.dispose();
}
}
};
PetrolStations.addActionListener(action);
Foods.addActionListener(action);
back.addActionListener(action);
locationChooser.addActionListener(action2);
contentPanel.add(PetrolStations);
contentPanel.add(Foods);
frame1.getContentPane().add(contentPanel);
frame1.setSize(640, 400);
frame1.setVisible(true);
frame1.setLocationRelativeTo(null);
}
public static void main(String...args) {
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
new Testing5().HELPMEGUI();
}
});
}
}
EDIT:
C'est ce que j'ai essayé de faire
action2 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
JComboBox locationSelected = (JComboBox) e.getSource();
if (locationSelected == Kuala Lumpur) {
System.out.println("Address 1");
}
}
};
2n d essayer
action2 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
int temp;
if(e.getSource() == locationChooser) {
temp = locationChooser.getSelectedIndex();
switch (temp) {
case 0: System.out.println("Address 1"); break;
case 1: System.out.println("Address 2"); break;
}
}
}
};}
'action2' est jamais initialisées (il est' null') – MadProgrammer
@MadProgrammer Ce code avant ajouté la nouvelle action – Farhan
Eh bien, ce fut unhelp – MadProgrammer