JTree的某些節點的標籤代表計數器的長度在計數後增加。這會導致縮寫(...)。想象一下,你有一棵樹,每個節點都可以在任何時候改變它的標籤大小。JTree-JLabel更新
樹在一個單獨的線程中每隔100毫秒重新繪製一次(tree.repaint()),以跟蹤更改圖標和更改跟蹤事件和時間進度的標籤。我嘗試了一種方法,在每個樹節點上用一個nodeChanged()調用替換了repaint()方法。樹開始閃爍。
爲了根據新長度更新這些節點標籤,我需要做些什麼? 我已經在擴展一個DefaultTreeCellRenderer。
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
DefaultMutableTreeNode node;
Object nodeValue;
TestComponent currentComponent;
super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
node = (DefaultMutableTreeNode) value;
nodeValue = node.getUserObject();
if(nodeValue instanceof TestComponent) {
currentComponent = (TestComponent) nodeValue;
setText(currentComponent.getLabel());
}
return this;
}
我應該在CellRenderer中做什麼,以便用「setText」「解決」問題?
我需要做什麼---- [Swing and Renderers](http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#editrender)'JComboBox'的相似概念,'JList','JTable'和'JTree', – mKorbel
我不是在這裏判斷的,也許你是對的,你有可憐的答案(我永遠不會檢查用戶配置文件),但我發佈鏈接渲染器概念,在此處搜索渲染器和PreferredSize – mKorbel