开发者

updating JTree in java GUI

I used a JTree in my GUI and added it to a JFrame. When I want to update it and change it's nodes in another p开发者_StackOverflowart of my program (while program is running, as an action performed) I try to add new nodes, or remove nodes to it; But my interface doesn't change. Please suggest me a solution.

regards


In addition to the insertNodeInto suggestion you can also use:

DefaultTreeModel model = (DefaultTreeModel)tree.getModel();
DefaultMutableTreeNode root = (DefaultMutableTreeNode)model.getRoot();
root.add(new DefaultMutableTreeNode("another_child"));
model.reload(root);


You need to ensure that after updating your model you instruct it to fire an event to cause any registered listeners to be notified of the event. One of the listeners will be the JTree and upon receiving the event it will repaint.

For example, DefaultTreeModel contains the methods:

nodeChanged nodesChanged nodeStructureChanged nodesWereInserted nodesWereRemoved

Also, as with all Swing programming you need to ensure you are updating your model on the Event Dispatch Thread.


Do you mean the GUI aspect just isn't showing your change? You should probably look int repaint() and revalidate().

Here's a good description of when to call which one.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜