2014-01-13 2 views
1

나는 setDataVector function.It을 사용하여 데이터를 설정하고있는 Jtable을 사용하고 있습니다. 정상적으로 작동하지만 마우스를 사용하여 끌기 만하면 일부 열 너비가 변경된 후 동일한 테이블에 새 데이터가로드된다고 가정합니다 해당 열의 너비를 기본 위치로 재설정합니다. 기본적으로 새 데이터가로드되는 경우에도 그 너비를 유지하려면.Jtable 보유 열 너비

+0

내가 정의하는 TableModel에게 도움을 – avinash

답변

6

setDataVector() 메서드를 사용하면 테이블의 구조가 변경되어 테이블이 TableColumnModel을 자동으로 다시 생성하므로 사용자 지정 내용이 손실 될 수 있습니다.

처음 사용하는 코드처럼 JTable의를 만들 때 : 재현되는 것을 TableColumnModel를 방지하기 위해

JTable table = new JTable(...); 
table.setAutoCreateColumnsFromModel(false); 

.

+0

감사를 사용하고 있지만이 변경 후 내가 받고 있어요 : 수동으로 setPreferredWidth() 메소드를 사용하여 컬럼의 폭을 관리 할 수 ​​있습니다 빈 테이블. 또한 Jtable에 대한 사용자 지정 테이블 모델을 사용하고 있습니다. – avinash

+0

@avinash,'빈 테이블이 생겼어. '간단한 해결책이지만, 이전 질문 중 하나라도 여전히 답을 수락하지 않았기 때문에 나는 그 사람을 돕는 데 시간을 허비하지 않는다. 도움. – camickr

+0

아, 죄송합니다. 나는이 "받아들이는 대답"을 깨닫지 못했습니다. 앞으로이 문제를 해결하려고 노력할 것입니다. – avinash

0

사용자 지정 테이블 모델을 사용할 때. setDateVector()를 사용하지 마십시오. 열을 다시 작성합니다. 나는) setAutoCreateColumnsFromModel를 (사용하려고 한

 table.setModel(buildTableModel(rs)); 
     TableColumnModel tcm = table.getColumnModel(); 
     tcm.getColumn(0).setPreferredWidth(80); 
     tcm.getColumn(1).setPreferredWidth(200); 
     tcm.getColumn(2).setPreferredWidth(100); 
     tcm.getColumn(3).setPreferredWidth(100); 
     tcm.getColumn(4).setPreferredWidth(100);