강좌 & 팁
글 수 2,412
2012.07.07 16:21:53 (*.52.177.29)
37512
SWT에서 컬러 다이얼로그창을 띄워서 컬러를 선택해 배경색을 바꾸는 샘플입니다.
컬러 다이얼로그창을 쓸 일은 그렇게 많지 않지만 쓸때를 대비해 올려 봅니다.
샘플소스도 그렇게 어려운게 아니기 때문에 한번 실행보고 소스를 분석하면 금방 이해 할 수 있습니다.
[샘플코드]
import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.ColorDialog; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; public class ColorDialogExample { public ColorDialogExample() { final Display display = new Display(); final Shell shell = new Shell(display); shell.setSize(300, 200); shell.setText("컬러 다이얼로그"); shell.setLayout(new FillLayout(SWT.VERTICAL)); final Text text = new Text(shell, SWT.BORDER); final Button btn = new Button(shell, SWT.PUSH); btn.setText("색 선택"); // 버튼 선택 이벤트 btn.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { // 컬러 다이얼로그 생성 ColorDialog colorDialog = new ColorDialog(shell); // 컬러 다이얼로그 타이틀 colorDialog.setText("색 선택"); // 초기 선택 값을 흰색으로 지정 colorDialog.setRGB(new RGB(255, 255, 255)); // 선택된 컬러값 RGB newColor = colorDialog.open(); if (newColor == null) { return; } // 텍스트 배경색을 바꿈 text.setBackground(new Color(display, newColor)); } }); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } public static void main(String[] argv) { new ColorDialogExample(); } }
[실행결과]
색 선택 버튼 클릭 하면 색선택 다이얼로그 창이 뜸.
빨간색을 선택하고 확인 버튼
배경색이 빨간색으로 변경됨.
별로 어렵지 않죠?
글자색이라던가 배경색등을 사용자가 임의로 바꾸게 할수 있도록 할때 사용하면 괜찮을 것 같습니다.
감사합니다.