Topic: 一个关于在shell里面显示图片的问题。

  Print this page

1.一个关于在shell里面显示图片的问题。 Copy to clipboard
Posted by: qingxing2005
Posted on: 2005-03-11 21:11

一面是一段关于在shell里面显示图片的问题。

import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;

public class A_D_Image {

private org.eclipse.swt.widgets.Shell sShell = null;
public static void main(String[] args) {
org.eclipse.swt.widgets.Display display =
org.eclipse.swt.widgets.Display.getDefault();
A_D_Image thisClass = new A_D_Image();

thisClass.createSShell() ;
thisClass.sShell.open();

while (!thisClass.sShell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep ();
}
display.dispose();
}

private void createSShell() {
sShell = new org.eclipse.swt.widgets.Shell();

Display display = new Display();
Image img = new Image
(display, "E://wall_revolution.jpg"); //显示一个图片。

sShell.setText("Shell");
sShell.setSize(new org.eclipse.swt.graphics.Point
(300,200));

GC gc = new GC(sShell);
gc.drawImage(img, 0, 0);
img.dispose();
}
}

可是运行时(JAVA程序运行)就遇到了错误。
Errors:

/*Exception in thread "main" org.eclipse.swt.SWTException: Invalid
thread access
at org.eclipse.swt.SWT.error(SWT.java:2691)
at org.eclipse.swt.SWT.error(SWT.java:2616)
at org.eclipse.swt.SWT.error(SWT.java:2587)
at org.eclipse.swt.widgets.Display.checkDisplay
(Display.java:568)
at org.eclipse.swt.widgets.Display.create(Display.java:629)
at org.eclipse.swt.graphics.Device.<init>(Device.java:99)
at org.eclipse.swt.widgets.Display.<init>(Display.java:355)
at org.eclipse.swt.widgets.Display.<init>(Display.java:351)
at A_D_Image.createSShell(A_D_Image.java:50)
at A_D_Image.main(A_D_Image.java:34)
*/

应该怎么解决?我是一个新手,请大家多帮忙。

2.Re:一个关于在shell里面显示图片的问题。 [Re: qingxing2005] Copy to clipboard
Posted by: yipsilon
Posted on: 2005-03-12 13:28

以后遇到Invalid thread access问题, 参考Display.syncExec或Display.asyncExec方法.


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923