Comment ajouter une JInternalFrame à JFrame?
J'ai mon JFrame
, et je veux joindre à un bouton un ActionListener qui déclenche la JInternalFrame
.
Je fais:
private void aboutMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
AboutFrame about = new AboutFrame(); //jInternalFrame
this.add(about);
}
Mais il n'a pas l'amener à l'avant. Qu'ai-je manqué?
- Que voulez-vous dire "lier à un bouton" ? Ne vous venez de dire que vous voulez le cadre interne s'affiche lorsque le bouton est pressé?
- Pour mieux aider plus tôt, après une SSCCE.
- Sry pour mon mauvais anglais. Je veux dire que le bouton a joint une AcionListener qui montre la jInternalFrame.
- Enfin, j'ai utilisé un JFrame, meilleure solution.
Vous devez vous connecter pour publier un commentaire.
Probable que vous souhaitez utiliser un
JDesktopPane
, puis définissez le volet contenu de votre image sur le bureau voletEnsuite, vous pouvez faire quelque chose comme ceci
Voir Comment Nous les Cadres Internes
UDATE
Exécuter cet exemple, je l'ai fait sur NetBeans GUI Builder aussi. Il fonctionne très bien, sans que le comportement de yout parlons.
AboutFrame.java
Étapes, j'ai pris
JDesktopPane
à la trame principale, et l'agrandit la taille de l'imageJMenuBar
vers le haut de l'imageJMenuItem
à laJMenuBar
JMenuItem
MODIFIER
Un autre apprach serait au lieu d'utiliser un
JInternalFrame
pour cela. L'utilisation d'un modalJDialog
. Vous pouvez créer de la même manière que pour laJInternalFrame
, et montrer de la même manière. Cela permettra de garantir que vous n'obtenez pas ce résultat. 🙂desktop.add(frame);
Shoul ai été cedesktop.add(about);
DesktopPane
et il suffit d'utiliser cetteNewJFrame.this.add(about);
il fonctionne.revalidate()
etrepaint()
dans la méthode de l'action après ajoutez le cadre interneJDestopPane
. Mais j'ai la main de code. Je ne suis pas sûr de la façon de se débarrasser de l'arrière du terrain même si, comme il est délivré avec le Look & FeelJInternal
cadre, et montrer de la même manière. Cela permettra de garantir que vous n'obtenez pas ce résultat. 🙂