韜光養晦/SWING

JCOMPONENT 프로퍼티,크기,위치

단순대왕 2010. 11. 15. 23:05

프로퍼티 : 자바빈즈 스펙을 따른다.

- 프로퍼티의 구성
프로퍼티 : 전역변수
setPropertyname(),
getPropertyname(),
isPropertyname()

- 프로퍼티의 종류
simple 프로퍼티 : 프로퍼티 값이 변하였을 때 어떤 이벤트도 발생하지않는 프로퍼티
bound 프로퍼티 : 상태가 변화한 후에 PropertyChangeEvents를 발생시키는 프로퍼티
constrained 프로퍼티 : 상태의 변화가 일어나기 전에 PropertyChangeEvents를 발생시킨다.

change 프로퍼티 :  프로퍼티 상태가 변화했을 때 발생된 ChangeEvents를 감지하기 위해 ChangeListeners를 등록
ChangeEvents는 단지 이벤트를 발생시킨 객체 정보만을 전달한다.

client 프로퍼티 : bound 프로퍼티이다.
client 프로퍼티가 변화할 때, 모든 등록된 PropertyChangeListener에게 PropertyChangeEvents가 디스패치된다.

각 스윙 컴포넌트는 키/값의 쌍을 저장하는 해시테이블을 갖는다.
이로써 프로퍼티들을 실행시간에 추가하거나 삭제할 수 있다.

Ex)
myComponent.putClientProperty("myname", myValue);

myObject = myComponent.getClientProperty("myname");

myComponent.putClientProperty("myname", null); //삭제

myDesktop.putClientProperty("JDesktopPane.dragMode", "outline");

주의)
다음 5개의 스윙 컴포넌트들을 Metal 룩앤필 사용시 주의해야 하는 특별한 client 프로퍼티
JTree.lineStyle
JScrollBar.isFreeStanding
JSlider.isFilled
JToolBar.isRollover
JInternalFrame.isPalette

크기와 위치
JComponent는 java.awt.Container를 확장. AWT에서 이미 사용되었던 크기와 위치에 관한 기능을 상속.