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
'Tcl & Tk > 팁 (Tip)' 카테고리의 다른 글
Tcl의 인코딩에 대하여 (0) | 2025.03.19 |
---|---|
윈도우 always on top 구현 (0) | 2025.03.17 |
에러없는 변수 접근법 (0) | 2025.03.17 |
자신의 IP 알아내기 (0) | 2025.03.17 |
C API 를 동적 라이브러리로 정의 후 TCL에서 호출 하는법 (0) | 2025.03.17 |