You are here

jacl을 이용한 swt 심플 예제

admin의 아바타
첨부 파일파일 크기
Image icon swt_example.png5.4 KB

swt 다운로드: http://www.eclipse.org/swt/
jacl 다운로드: http://tcljava.sourceforge.net/
j2sdk 다운로드: http://java.sun.com/j2se/1.4.2/download.html

jacl은 Java로 작성된 tcl 인터프리터입니다.
때문에 Tcl과 동일한 기능을 제공하지는 않습니다.
단적인 예로 Tk를 지원하지 않는다는 겁니다.

아래는 jacl을 빌드후 swt의 예제를 jacl로 변경해서 테스트 해본 예제입니다.
테스트전 다운로드 받은 swt의 jar 파일을 jaclsh.bat내의 CLASSPATH에 추가해야합니다.

본래 java 코드는 아래와 같습니다.

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
 
public class SWTHelloWorld {
 
public static void main (String [] args) {
        Display display = new Display ();
        Shell shell = new Shell(display);
 
        Text helloWorldTest = new Text(shell, SWT.NONE);
        helloWorldTest.setText("Hello World SWT");
        helloWorldTest.pack();
 
        shell.pack();
        shell.open ();
        while (!shell.isDisposed ()) {
                if (!display.readAndDispatch ()) display.sleep ();
        }
        display.dispose ();
}
}

아래는 tcl로 포팅한 코드입니다.

package require java

java::import org.eclipse.swt.SWT
java::import org.eclipse.swt.widgets.Display
java::import org.eclipse.swt.widgets.Shell
java::import org.eclipse.swt.widgets.Text

set display [java::new Display]
set shell [java::new Shell $display]

set text [java::new Text $shell [java::field SWT NONE]]

$text setText "hello world"
$text pack
$shell pack
$shell open

while { ![$shell isDisposed] } {
        if { ![$display readAndDispatch] } { $display sleep }
}

$display dispose

C:\> jaclsh.bat sample.tcl

포럼: