これはおそらく簡単な質問です。私はJavaプログラミングにあまり慣れていません。ただし、CheckboxTreeを使用してダイアログを作成する必要があります(チェックボックスを使用した場合の変形。http:JTree
//www.javaworld.com/javaworld/jw-09-2007/jw-09-checkboxtree.htmlを参照) 。
注:私はJDialog
NetBeansのグラフィカル環境で作成したので、ボタンなどを追加するためのコードを生成しました。したがって、主要部分の作成後にこのツリーを追加する方法を知る必要があります...多分それは問題は、私がこのようなことをすると、次のようになるためです。
JPanel panel = new JPanel();
this.setContentPane(panel);
次に、実際にダイアログにツリーが表示されますが、すべてのボタンとすべてが消えています...
aとoptionspaneに追加できましたJFrame
が、カスタムで追加したいと思いますJDialog
。誰かが私に何をする必要があるかを非常に簡単な言葉で説明してもらえますか?
これまでの私の弱い試みは次のとおりです。
JDialogのコンストラクター:
public MetadataUI(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
Container panel = getContentPane();
panel.add(getTree());
panel.repaint();
this.pack();
}
チェックボックスツリーを作成するgetTreeメソッド:
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;
}
この塗り直しとそれは私がグーグルで見つけたものに基づいた最後の試みですが、それはまったく違いがなかったので、私はかなり離れていると思います。
ツリーを追加して表示する最も簡単な方法をいただければ幸いです。JTree
追加に関してはまったく同じように機能しているようですが、機能させることはできません。したがって、この特定のチェックボックスツリープラグインの経験がない場合でも、でを使用するための同じ(最も単純な)コードでJTree
十分JDialog
です。
編集:
Andrewに応えて、これが通常のJTreeと同じこと(私の最善の試み)です:
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;
}
編集2:
マキシムに応えて、私は混乱しています。あなたにとって明らかなことはおそらく私に失われています。あなたのコードからいくつかのものを借りて、これは私が思いつくことができる最高のものです(動作しません):
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);
}