J'ai une classe qui crée l'interface graphique qui suit la première fois que le bouton de l'arme est cliqué sur: Les composants de mon panneau ne sont pas tirées si JOptionPane est tiré
Chaque bouton sur le côté que je clique sur devrait passer à un panneau différent en conséquence. Cependant, actuellement, je travaille juste sur le panneau d'armes. Pour économiser de la mémoire, j'ai décidé d'enregistrer tout ce qui a été tapé dans la boîte de recherche et si l'utilisateur décide d'ouvrir à nouveau le panneau, l'application recherche à nouveau la liste. À l'heure actuelle, je ne dispose que d'un élément appelé test comme vous le voyez, mon problème est de savoir si je tape quelque chose dans la zone de recherche, ce n'est pas disponible et je passe des panneaux, ceci est mon résultat:
Le prévu le résultat est censé être le message d'erreur mais avec la boîte de recherche, les boutons et le JList encore disponible avec le JList montrant "No Weapons Listed".
Maintenant, quand je retire le JOptionPane je reçois le texte suivant qui est la moitié du résultat:
Je voudrais savoir pourquoi lorsque le message d'erreur apparaît le panneau n'est pas tiré?
PS: J'entré quelques messages de la console, l'un après l'JOptionPane et l'autre avant la déclaration de retour et ils ont tous deux faire imprimer correctement
Voici mon code pour le panneau:
private static JPanel searchMenu() {
JPanel pnl = new JPanel();
pnl.setOpaque(false);
pnl.setLayout(new BorderLayout());
Object[] search = search();
if(search.length == 0) {
JOptionPane.showMessageDialog(MyFrame.getFrame(),
"No weapons with your search criteria has been found.\n"
+ "What you type in the search box is searched for in the weapon names, classnames and their description.\n",
"No Weapon found", JOptionPane.ERROR_MESSAGE);
search = new Object[] {"No Weapons listed"};
}
System.out.println(search.length);
DefaultListModel list = new DefaultListModel();
for(Object o: search) list.addElement(o);
JList searched = new JList();
searched.setModel(list);
searched.setPreferredSize(new Dimension(250, 700));
searched.setFont(new Font("Tahoma", Font.PLAIN, 15));
pnl.add(searched, BorderLayout.WEST);
pnl.add(weaponDisplay(lastSelec),BorderLayout.CENTER);
JPanel space = new JPanel();
space.setOpaque(false);
pnl.add(space,BorderLayout.SOUTH);
return pnl;
}
Pour une meilleure aide plus rapidement, postez un [MCVE] ou [Short, Self Contained, Example correct] (http://www.sscce.org/). –