Ceci est probablement une question simple, je ne suis pas très habitué à la programmation Java. Mais je dois créer un dialogue avec un CheckboxTree (une variante de JTree
avec des cases à cocher, voir http://www.javaworld.com/javaworld/jw-09-2007/jw-09-checkboxtree.html)Ajouter JTree (CheckboxTree) à JDialog
S'il vous plaît noter: J'ai créé le JDialog
dans l'environnement graphique de NetBeans, il a généré un code pour ajouter des boutons, etc. donc, je dois savoir comment ajouter cet arbre après la création des pièces principales, pour ainsi dire ... Peut-être que le problème, parce que si je fais quelque chose comme ceci:
JPanel panel = new JPanel();
this.setContentPane(panel);
alors je vois effectivement l'arbre apparaissant dans le dialogue, mais tous les boutons et tous sont partis ...
I ont été en mesure de l'ajouter à un JFrame
et un panneau d'options, mais je le veux dans un JDialog
personnalisé. Quelqu'un pourrait-il m'expliquer en termes très simples ce que je dois faire?
Voici mes faibles tentatives jusqu'à présent:
Constructor pour le JDialog:
public MetadataUI(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
Container panel = getContentPane();
panel.add(getTree());
panel.repaint();
this.pack();
}
méthode
de getTree qui crée le checkboxtree:
private static CheckboxTree getTree() {
DefaultMutableTreeNode root, child;
root = new DefaultMutableTreeNode("root");
child = new DefaultMutableTreeNode("Colors");
root.add(child);
child.add(new DefaultMutableTreeNode("Cyan"));
child.add(new DefaultMutableTreeNode("Magenta"));
child.add(new DefaultMutableTreeNode("Yellow"));
child.add(new DefaultMutableTreeNode("Black"));
CheckboxTree checkboxTree = new CheckboxTree(root);
checkboxTree.setVisible(true);
return checkboxTree;
}
Ce repeindre et tout ce qui est le dernier Je me suis basé sur quelque chose que j'ai trouvé sur Google, mais cela n'a fait aucune différence, alors je suppose que je suis loin.
La manière la plus simple d'ajouter l'arbre et de le rendre visible serait appréciée. Il semble fonctionner exactement comme un JTree
en ce qui concerne l'ajout, mais je ne peux pas le faire fonctionner. Donc, même si personne n'a d'expérience avec ce plugin checkboxtree particulier, le même code (le plus simple) pour utiliser un JTree
dans un JDialog
ferait probablement!
EDIT:
En réponse à Andrew, voici la même chose (ma meilleure tentative) avec un JTree régulier:
private static JTree getTree() {
DefaultMutableTreeNode root, child;
root = new DefaultMutableTreeNode("root");
child = new DefaultMutableTreeNode("Colors");
root.add(child);
child.add(new DefaultMutableTreeNode("Cyan"));
child.add(new DefaultMutableTreeNode("Magenta"));
child.add(new DefaultMutableTreeNode("Yellow"));
child.add(new DefaultMutableTreeNode("Black"));
JTree tree = new JTree(root);
tree.setVisible(true);
return tree;
}
EDIT 2:
En réponse à Maxim, je suis confus. Les choses qui vous semblent évidentes sont probablement perdues pour moi. Empruntant quelques trucs de votre code c'est le meilleur que je pouvais venir avec (ne fonctionne pas):
public MetadataUI(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
JScrollPane s = new JScrollPane();
s.getViewport().add(getTree());
getContentPane().add(s, BorderLayout.CENTER);
setVisible(true);
}
* "le même code (le plus simple) pour utiliser un JTree dans un JDialog ferait probablement!" * Idem que [SSCCE] (http://sscce.org/) de votre meilleur essai. –
@AndrewThompson: Désolé, je ne comprends pas le commentaire ... – Anders
Publier un SSCCE (en utilisant un standard "JTree") de votre meilleure tentative. –