ボタンクリックイベントでタブと JTree を作成するこのアプリを作成しています。問題は、ノードを JTree に追加しようとすると、JTree が更新されないことです (または、ノードが追加されません...よくわかりません)。
タブとツリーを作成する関数は次のとおりです。
jTabbedPane1.add(st,jSplitpane10);
int count = jTabbedPane1.getTabCount();
jTabbedPane1.setSelectedIndex(count-1);
DefaultMutableTreeNode root = new DefaultMutableTreeNode("All Notebooks");
DefaultMutableTreeNode notebook1 = new DefaultMutableTreeNode("Notebook 1");
root.add(notebook1);
// Create tree
JTree tree = new JTree(root);
//Create Scroll Pane for the tree
JScrollPane sp = new JScrollPane(tree);
Global.trees.add(tree);
そして、これは選択されたタブのツリーに新しいノード "Green" を追加することになっているコードです:
int i = jTabbedPane1.getSelectedIndex();
DefaultTreeModel model = (DefaultTreeModel)Global.trees.get(i).getModel();
// Find node to which new node is to be added
int startRow = 0;
String prefix = "J";
TreePath path = Global.trees.get(i).getNextMatch(prefix, startRow, Position.Bias.Forward);
MutableTreeNode node = (MutableTreeNode)path.getLastPathComponent();
// Create new node
MutableTreeNode newNode = new DefaultMutableTreeNode("green");
// Insert new node as last child of node
model.insertNodeInto(newNode, node, node.getChildCount());
model.reload(newNode);
JTree のグローバル リストの宣言も次のとおりです。
public class Global {
public java.util.List<JTree> trees = new ArrayList<JTree>();
}Global Global;
新しいノードがツリーに表示されない理由はありますか?