본문 바로가기

JAVA/SWT/JFACE

Canvas를 활용한 Custom 버튼 활용

SimpleButton.java

TestApp.java

상태를 Normal, Hover, Click, Toggle(선택한 상태)로 구분한 Custom 버튼을 Canvas를 상속받아 구현하였다. 



또한 해당 Custom 버튼을 컴포지트에서 생성하여 활용하는 sample 코드도 구현하였다. 

상단의 "ADD" 버튼을 선택하면 하단의 컴포지트에서 Custom 버튼이 생성되는 단순한 코드이다.

다면 주의할 점은 버튼을 생성하고 부모 컴포지트에서 "layout()"함수를 호출해줘야 한다는 점이다.

"layout()"함수를 호출해주지 않으면 생성된 객체의 객체크기가 설정되지 않아 객체를 확인할 수 없게 된다.

		// TestApp.java 
		
		// Custom 버튼 추가
		btnNewButton.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				SimpleButton btn = new SimpleButton(compositeBody, SWT.NONE);
				btn.setLayoutData(new RowData(80, 25));
				btn.setText("button");
				// ※ 버튼의 부모 객체에서 layout을 호출해줘야 버튼의 사이즈가 설정되고 버튼 객체가 전시된다.
				compositeBody.layout();
			}
		});