私はJTreesとJavaを学んでいます。
建設的な提案やフィードバックは大歓迎です。
私はJTreesの理解が不足していると思います。そして、5時間グーグルして、テストして行き詰まっています。コードを可能な限り単純化しました。
public void actionPerformed(ActionEvent event) {
MyNode selNode = (MyNode) m_tree.getLastSelectedPathComponent();
if (selNode != null) {
MyNode newNode = new MyNode("New Node");
model.insertNodeInto(newNode, selNode,
selNode.getChildCount());
MyNode[] nodes = model.getPathToRoot(newNode);
TreePath path = new TreePath(nodes);
m_tree.scrollPathToVisible(path);
m_tree.setSelectionPath(path);
// ******* The next line throws the exception shown below. ****
m_tree.startEditingAtPath(path);
}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.plaf.basic.BasicTreeUI.startEditing(BasicTreeUI.java:2059)
at javax.swing.plaf.basic.BasicTreeUI.startEditingAtPath(BasicTreeUI.java:601)
at javax.swing.JTree.startEditingAtPath(JTree.java:2349)
at ItemCreator.ItemCreator$1.actionPerformed(ItemCreator.java:74)
1)JTreeに新しいノードを追加すると、コードはスレッド"AWT-EventQueue-0"java.lang.NullPointerExceptionで例外をスローします。
2)一般的な建設的なフィードバックは大歓迎です。
敬具