Bonjour,
Je cherche à concevoir une application dont l'affichage changera selon un menu (rien de très original donc). Je m'entraîne donc à changer le contenu d'une fenêtre.
Je cherche donc à savoir : dans ma JFrame, est-ce possible de modifier intégralement son contenu ? Par exemple, il est conçu par une méthode initComponent().
est-ce que quelque chose du genre :
pourrait fonctionner ? 'details' est un jMenuItem, et ce bout de code est inclus dans le premier initComponent(). Ce que je veux dire, est-ce qu'on peut redéfinir un JFrame en cours de route ? Je précise que ce bout de code ne marche pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 details.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { initComponent2(); } });
Sinon, une autre approche que j'ai eue, est de créer une nouvelle fenêtre.
Pour cela, j'utilise :
Voici le constructeur de ma ZFrame, récupéré dans un tuto, sauf le coup du 'Point pos' :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 details.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { System.out.println(getContentPane().getLocation()); ZFrame zd2 = new ZFrame(null, "Coucou", true,getContentPane().getLocation()); ZDialogInfo zInfo2 = zd2.showZDialog(); zd2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); dispose(); } }
Avec cette méthode, je crée bien la fenêtre, l'ancienne se ferme (donc ne prend pas de mémoire ?), mais elle ne s'affiche pas du tout là où était la précédente, mais systématiquement en coordonnées [x=0,y=23].
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public ZFrame(JFrame parent, String title, boolean modal,Point pos){ super(); this.setSize(550, 300); this.setLocation(pos); this.setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.initComponent(); }
Quelle idée est la meilleure ? ou bien il y a peut-être une 3e idée révolutionnaire ?
Partager