追加ボタンのある JXTreeTable があります。ボタンは期待どおりに機能します。新しいノードが最後に追加され、(テスト目的で) プログラムにハードコードされた値が追加されます。この線:
modelSupport.fireChildAdded(new TreePath(root), noOfChildren-1, dataNode);
TreeTableModel に加えられた更新を認識し、それに応じて更新するように JXTreeTable に指示します。
次に実行します。
treeTable.changeSelection(treeTable.getRowCount()-1, 0, false, false);
この新しいノードを自動的に選択します。これは期待どおりに機能しますが、自動的にスクロールしてこの新しいノードが見えるようになることも期待していましたが、そうではありません。代わりに、最後から 2 番目のノードのみを表示するようにスクロールし、新しいノードはビューの外にわずかに隠れたままにします。
また、トリックを使用して、プログラムで最終レコードまでスクロールしようとしました。ただし、このコード:
JScrollBar vertical = scrollPane.getVerticalScrollBar();
vertical.setValue(vertical.getMaximum());
同じ問題を明らかにしました。
奇妙なことに、上記の 2 つのコード ブロックのいずれかを「下にスクロール」ボタンに接続し、新しいノードを追加した後にこのボタンを手動で押すと、すべて正常に動作します。このバグの原因を特定したり、修正/回避策を提供したりできる人はいますか?