반응형

평상시에는 LayoutManager를 이용하여 UI의 위치를 잡고 사용하지만

가끔 setbounds을 이용해 UI 위치를 절대값을 사용하여 위치하는 경우가 있다.

이 함수를 사용하면 편하게 원하는 위치에 UI위치를 설정할 수 있다.

하지만 이 함수를 쓰면 위치와 크기가 고정이 되어 프로그램 크기를 조정했을때 변하지 않고 항상 그 위치에 고정되어있다.

이 상태를 해결하기위해 JAVA는 ComponentListener라는 리스너를 지원해준다.

이 리스너에서 사용할 수 있는 함수는 4가지가 있다.

void componentHidden (ComponentEvent e) 
컴퍼넌트가 불가시가 되면(자) 불려 갑니다.
void componentMoved (ComponentEvent e) 
컴퍼넌트의 위치가 바뀌면(자) 불려 갑니다.
void componentResized (ComponentEvent e) 
컴퍼넌트의 사이즈가 바뀌면(자) 불려 갑니다.
void componentShown (ComponentEvent e) 
컴퍼넌트가 가시가 되면(자) 불려 갑니다.

저 함수들 중 componentResized() 함수를 이용하여 컴포넌트 크기가 변할 때 setbounds를 다시 실행시켜주면

 setbounds를 이용한 자신만의 LayoutManager를 사용한 것과 같은 효과를 낼 수 있다.

반응형

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

[팁] application bundle 위치  (0) 2015.12.08
JAVA L&F(Look & Feel)  (0) 2015.12.05
Java 폴더안에 내용 모두 읽기  (4) 2015.12.03
JAVA Jtable cell not editable  (0) 2015.12.02
JAVA Jtable 자동 키입력 막기  (0) 2015.12.02
반응형

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