반응형

자바 JTable을 사용하다보면 안에 있는 자료길이가 길어 셀에서 ...으로 먹히는 경우가 있는데 최대한 그런 경우가 발생하지 않게 하기 위해 하는 함수를 소개한다.


public void resizeColumnWidth(JTable table) {
    final TableColumnModel columnModel = table.getColumnModel();
    for (int column = 0; column < table.getColumnCount(); column++) {
        int width = 50; // Min width
        for (int row = 0; row < table.getRowCount(); row++) {
            TableCellRenderer renderer = table.getCellRenderer(row, column);
            Component comp = table.prepareRenderer(renderer, row, column);
            width = Math.max(comp.getPreferredSize().width +1 , width);
        }
        columnModel.getColumn(column).setPreferredWidth(width);
    }
}


위 소스를 사용하면 자동으로 내용 길이에 맞춰 JTable column 넓이를 조절해 준다.

반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

Gradle  (0) 2023.09.04
Titleborder 색 변경  (0) 2015.12.27
[팁] JarBundler 이용법.  (0) 2015.12.08
[팁] application bundle 위치  (0) 2015.12.08
JAVA L&F(Look & Feel)  (0) 2015.12.05
반응형

JTable 셀 자체를 아예 수정이 안되게하는 방법이 있는데 

Table.setEditable(false)를 이용하면 JTable 수정이 불가능 한 상태로 변한다.

이 함수를 사용하면 JTable 셀 선택도 불가능하게 된다.

선택은 가능하게 하면서 수정을 막는 방법은 아래와 같다.

Table.setModel(new DefaultTableModel(new Object[][][] {}, new String[] { "셀1","셀2","셀3" }){

public boolean isCellEditable(int row, int column) {

      //all cells false

      return false;

    }

});

반응형
반응형

자바에서 JTable에 단축키를 설정하여 KeyListener를 사용할 때 JTable 기본 옵션으로 키보드 특수키 외 다른 키를 입력하였을 때 수정이 바로 되는 경우가 있다.

이렇게 되면 JTable안 내용이 변경이 되기 때문에 매우 불편한 상황이 발생할 수도 있다.

그래서 JTable에 키를 입력했을때 내용수정이 안되게 하는 함수가 있다.

Table.putClientProperty("JTable.autoStartsEdit", Boolean.FALSE);

이 함수를 쓰면 JTable 셀이 선택되어있을때 키를 입력해도 자동으로 입력이 되지 않고 더블클릭으로 수정이 가능하게 해야 내용수정이 가능하게 된다.

반응형

+ Recent posts