简明现代魔法 -> Java编程语言 -> SWT之路:SWT图像显示
SWT之路:SWT图像显示
2009-10-03
程序演示
还是先用SWT Desiner创建界面程序。然后创建一个Display对象和Image对象,和一个GC对象。类org.eclipse.swt.graphics.GC是一个封装了所有可执行的绘图操作的图形上下文(Graphics Context)。然后以Display和图片路径创建Image对象,再调用gc.drawImage();就可以显示图片了。
程序代码
package SWT;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class showImages {
protected Shell shell;
public static Display myDisplay;
public static boolean internalCall = false;
/**
* Launch the application.
* @param args
*/
public static void main(String[] args) {
internalCall = true;
myDisplay = new Display();
try {
showImages window = new showImages();
window.open();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Open the window.
*/
public void open() {
Display display = Display.getDefault();
createContents(myDisplay);
Image img = new Image(display, "images/3.jpg");
shell.open();
GC gc = new GC(shell);
gc.drawImage(img, 0, 0);
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
img.dispose();
if (internalCall) display.dispose();
}
/**
* Create contents of the window.
*/
protected void createContents(Display display) {
myDisplay = display;
shell = new Shell();
shell.setSize(520, 280);
shell.setText("图像显示");
}
}
一旦你创建了一个GC,你就有责任通过它的dispose方法释放它的资源。一个由应用程序创建的GC需要立即被绘制,然后尽快释放掉。这是因为每个GC都需要一个底层的系统资源,而在某些操作系统中这些资源是稀缺的,像Win98就只允许同时创建五个GC对象。