2
트리가 확장되어 있고 트리 노드의 이름을 바꾸려고 시도 할 때 모든 이름이 약 4 개의 5 글자로 표시되고 다른 글자는 (...)으로 표시되지는 않지만 트리가 축소되면 모든 사항이 정상입니다. 다음은 내 사용자 지정 트리 셀 렌더링 :확장 된 JTree 렌더링
public class customTreeCellRenderer extends DefaultTreeCellRenderer {
public Component getTreeCellRendererComponent(JTree tree,
Object value, boolean selected, boolean expanded,
boolean leaf, int row, boolean hasFocus){
super.getTreeCellRendererComponent(tree, value,
selected, expanded, leaf, row, hasFocus);
JLabel label = (JLabel) this ;
label.setSize(label.getHeight(),value.toString().length());
label.setText(value.toString());
label.repaint();
tree.revalidate();
this.repaint();
System.out.println("expanded "+expanded);
System.out.println("Custom "+ value.toString());
return label;
}
}
1. 귀하의 질문에 무엇입니까? 2. 더 빨리 도움을 받으려면 [SSCCE] (http://pscode.org/sscce.html)를 게시하십시오. –
참고 사항 [답변] (http://stackoverflow.com/questions/5822810/how-does-one-make-a-component-in-the-center-of-a-borderlayout-occupy-all-center/ 5824318 # 5824318). – trashgod
이 포럼에 오신 것을 환영합니다 :-) 성공적인 참여를 위해 a) 자바 명명 규칙을 배우고 그들에게 충실하십시오. b) 결코 응용 프로그램 코드에서 setSize를 호출 할 수 없습니다. c) 그리기주기에서 다시 칠하기/재확인을 절대로 트리거하지 마십시오. 실제로, getXXRendererComp에서 대상의 상태를 절대로 변경하지 마십시오. d) 렌더러/편집기 개념 – kleopatra