SWT 의 Canvas..
글쓴이: pastime / 작성시간: 금, 2005/03/18 - 5:17오후
GUI 프로그래밍은 경험이 거의 없어서 허접한 질문하나 드립니다.
(검색을 해봐도 마땅한 자료를 찾기가 힘드네요..)
SWT 의 Canvas 에 그림을 그리고 싶습니다.
아주 단순한 선 그리기 예제인데도 선이 보이질 않네요.. :cry:
shell 에 직접 그리는 건 되는데 어디가 문제일까요?
(컴파일 환경은 M$ Windows XP 에 Eclipse 3.0.1 입니다)
package nhk.oss.swt.tut;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.*;
public class TestMainClass
{
public static void main (String [] args)
{
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("SWT example");
shell.open();
Canvas canvas = new Canvas(shell, SWT.NULL);
GC gc = new GC(canvas);
gc.drawLine(10, 10, 20, 20);
gc.dispose();
shell.setLayout(new FillLayout());
shell.pack();
// shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
Forums:


shell.setLayout(new FillLayout()); 이게 있어
shell.setLayout(new FillLayout()); 이게 있어서 그러니, 아래처럼 고쳐서 테스트 해보세요.
public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setText("SWT example"); Canvas canvas = new Canvas(shell, SWT.NONE); canvas.setSize(200,200); shell.open(); GC gc = new GC(canvas); gc.setForeground(display.getSystemColor(SWT.COLOR_BLUE)); gc.drawLine(10, 10, 190, 190); gc.dispose(); //shell.setLayout(new FillLayout()); shell.pack(); // shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }----
I paint objects as I think them, not as I see them.
atie's minipage
감사합니다.
답변 달아주신대로 하니까 잘 되는군요.. ^^
그런데 layout 문제보다는
shell.open() 의 타이밍과 canvas.setSize() 에 영향을 받는것 같네요.
아무튼 도움을 주셔서 감사드립니다.
댓글 달기