2017-12-04 11 views
0

Java에서 테이블의 크기를 설정하려고합니다.너비를 설정 한 후 JTable의 빈 공백 제거

pTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 
    pTable.getColumnModel().getColumn(0).setPreferredWidth(120); 
    pTable.getColumnModel().getColumn(1).setPreferredWidth(100); 

표가 내 프레임에서 올바른 위치에 있지만 마지막 열 오른쪽에 불필요한 공백이 있습니다. 난 그냥 이름 컬럼의 오른쪽에 그 빈 공백을 제거하고 싶은

enter image description here

: 이 내가 무엇을 얻을 수 있습니다.

이 질문을 잠그지 마십시오. 유사한 질문이 있지만 저에게 도움이되는 정보가 없습니다.

+0

열의 크기를 설정하지 마십시오? 'AUTO_RESIZE_OFF' 대신'AUTO_RESIZE_LAST_COLUMN'을 사용해보십시오. – MadProgrammer

+0

크기가 맞지 않으면 전체 공백을 채우고 내 표를 원하는 것보다 훨씬 넓어지기를 원합니다. AUTO_RESIZE_LAST_COLUMN을 지정하면 열의 크기가 전혀 변경되지 않습니다. –

+0

그래,이 두 상황 중 어느 것이 바람직하지 않습니까? 나머지 공간을 채우는 공백이나 열? – MadProgrammer

답변

0

JTable에는 미리 정의 된 기본 크기가 있습니다.

JTable table = new JTable(5, 2); 
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 
table.getColumnModel().getColumn(0).setPreferredWidth(120); 
table.getColumnModel().getColumn(1).setPreferredWidth(100); 
table.setPreferredScrollableViewportSize(table.getPreferredSize()); 

지금 폭이 열 너비 수 있지만 물론 높이뿐만 아니라 모든 행의 높이가 될 것입니다 :

당신은 같은 것을 수행하여이를 재설정 할 수 있습니다.

그러나 제약 조건으로 BorderLayout.LINE_START을 사용하여 프레임에 스크롤 창을 추가하면 표의 너비가 유지되고 높이는 프레임의 높이에 따라 달라집니다.