0

JTreeを作成するときに、JTreeの最初の行を選択しようとしています。しかし、時々私は次の例外を受け取ります:

java.lang.NullPointerException
   at javax.swing.plaf.basic.BasicTreeUI.completeEditing(BasicTreeUI.java:2035)
   at javax.swing.plaf.basic.BasicTreeUI$Handler.valueChanged(BasicTreeUI.java:3715)
   at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:634)
   at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTreeSelectionModel.java:1092)
   at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultTreeSelectionModel.java:293)
   at javax.swing.JTree.setSelectionPaths(JTree.java:1644)
   at javax.swing.JTree.setSelectionRows(JTree.java:1721)
   at javax.swing.JTree.setSelectionRow(JTree.java:1696)

tree.setSelectionRow(0)を呼び出す前に、効果なしに次のチェックを入れようとします。

    while((!tabTree.isVisible()) || (tabTree.isEditing()) || (tabTree.getRowCount() == 0)) {
        try {
            Thread.sleep(10);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    tabTree.setSelectionRow(0);

あなたは救われる必要があります:)

助言がありますか?

4

1 に答える 1

3

これは次の原因で発生する可能性があります。

  • nullで戻るカスタムセルエディタを使用していますgetTreeCellEditorComponent()
  • UI以外のスレッドでツリーを変更します。Swingの同時実行を参照してください。
于 2013-01-30T13:26:04.560 に答える