這可能是一個簡單的問題,我不太習慣Java編程。但我需要創建一個CheckboxTree一個對話框(的JTree
與複選框變體,見http://www.javaworld.com/javaworld/jw-09-2007/jw-09-checkboxtree.html)將JTree(CheckboxTree)添加到JDialog中
請注意:我創建在NetBeans的圖形化環境JDialog
,因此它添加按鈕等生成的代碼所以,我需要知道如何創造的主要部分後添加此樹,可以這麼說...也許這就是問題所在,因爲如果我做這樣的事情:
JPanel panel = new JPanel();
this.setContentPane(panel);
然後,我居然看到了樹在對話框中顯示,但所有的按鈕和所有按鈕都沒有了...
I已經能夠將其添加到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();
}
創建該checkboxtree
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
完全一樣,但我無法使其工作。所以即使沒有人對這個特定的checkboxtree插件有經驗,在JDialog
中使用JTree
的相同(最簡單)代碼也許會這樣!
編輯:
針對安德魯,這裏是同樣的事情(我最好的嘗試)與常規的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:
在迴應馬克西姆,我困惑。對你而言顯而易見的事情可能會迷失在我身上。從你的代碼借用一些東西,這是我能想出的最好的(不工作):
*「相同的(簡單)使用一個JTree在一個JDialog代碼可能會做!」 *同上,作爲一個[SSCCE(http://sscce.org/)你最好的嘗試。 –
@AndrewThompson:對不起,我不明白的評論... – Anders
郵報SSCCE(使用標準的一個'JTree')你最好的嘗試。 –