JTree의 일부 노드 레이블은 일부 계산 후에 길이가 증가하는 카운터를 나타냅니다. 결과는 약어 (...)가됩니다. 모든 노드가 언제든지 레이블 크기를 변경할 수있는 트리가 있다고 가정 해보십시오.JTree - JLabel update
변경된 아이콘을 추적하고 추적 된 이벤트 및 진행 상황의 결과 인 레이블을 변경하기 위해 별도의 스레드에서 100ms마다 트리를 다시 그립니다 (tree.repaint()). 나는 repaint() 메소드를 모든 트리 노드에서 nodeChanged() 호출로 대체 한 접근법을 시도했다. 트리가 깜박이기 시작합니다.
노드 레이블을 새로운 길이로 업데이트하려면 무엇을해야합니까? 이미 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;
}
"setText"로 문제를 "수정"하기 위해 해당 CellRenderer에서 무엇을해야합니까?
무엇이 필요합니까 ----> [Swing and Renderers] (http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#editrender)'JComboBox'에 대한 similair 개념 , JList, JTable, JTree, – mKorbel
나는 판사가 아닙니다. 어쩌면 당신이 옳고, 답이 좋지 않을 것입니다. (나는 사용자 프로필을 체크하지 않을 것입니다.) 렌더러의 개념, 여기에서 렌더러 & PreferredSize – mKorbel