swt开始使用swt


备注

本节概述了swt是什么,以及开发人员可能想要使用它的原因。

它还应该提到swt中的任何大型主题,并链接到相关主题。由于swt的Documentation是新的,您可能需要创建这些相关主题的初始版本。

版本

发布日期
4.7 2017年6月12日
4.6.3 2017年3月1日
4.6.2 2016年11月24日
4.6.1 2016年9月7日
4.6 2016年6月6日
4.5.2 2016年2月12日
4.5.1 2015年9月4日
4.5 采用WordPress
4.4.2 2015年2月4日
4.4.1 2014年9月25日
4.4 2014年6月6日
4.3.2 2014年2月21日
4.3.1 2013年9月11日
4.3 2013年6月5日
4.2.2 2013年2月4日
4.2.1 2012年9月14日
4.2 2012-06-08
4.1.2 2012-02-23
4.1.1 2011-09-12
4.1 2011-06-20
4 2010-07-27
3.8.2 2013年1月31日
3.8.1 2012年9月14日
3.8 2012-06-08
3.7.2 2012-02-08
3.7.1 2011-09-09
3.7 2011-06-13
3.6.2 2011-02-10
3.6.1 2010-09-09
3.6 2010-06-08
3.5.2 2010-02-11
3.5.1 2009-09-17
3.5 2009-06-11
3.4.2 2009-02-11
3.4.1 2008-09-11
3.4 2008-06-17
3.3.2 2008-02-21
3.3.1.1 2007-10-23
3.3.1 2007-09-21
3.3 2007-06-25
3.2.2 2007-02-12
3.2.1 2006-09-21
3.2 2006-06-29
3.1.2 2006-01-18
3.1.1 2005-09-29
3.1 2005-06-27
3.0.2 2005-03-11
3.0.1 2004-09-16
3 2004-06-25
2.1.3 2004-03-10
2.1.2 2003-11-03
2.1.1 2003-06-27
2.1 2003-03-27
2.0.2 2002-11-07
2.0.1 2002年8月29日
2 2002-06-27
1 2001-11-07

创建一个新的SWT程序

创建一个名为HelloWorld.java 的新文本文件并将其粘贴到其中:

import org.eclipse.swt.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

public class HelloWorld
{
    public static void main(String[] args)
    {
        final Display display = new Display();
        final Shell shell = new Shell(display);
        shell.setLayout(new FillLayout());

        Label label = new Label(shell, SWT.NONE);
        label.setText("Hello World!");

        shell.pack();
        shell.open();

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

当你启动程序时,它看起来像这样:

在此处输入图像描述


仔细看看Hello World应用程序

Hello World应用程序包含一个HelloWorld 类定义和一个main 方法。

main方法定义了Display Shell 。显示器充当SWT和底层操作系统之间的接口。它以SWT事件循环的形式处理平台事件模型。 shell表示桌面或窗口管理器的单个窗口。

通过在窗口小部件的构造函数中指定shell,将窗口小部件添加到shell。在这个例子中,我们创建了一个Label 。标签是可以显示文本或图像的小部件。在这种情况下,我们设置文本“Hello World!”它。通过将shell指定为构造函数中的第一个参数,将小部件添加到shell中。

要使标签在shell中可见,我们必须为其设置固定大小,或者我们需要告诉其父(shell)如何布置其子项。

FillLayout 是最简单的SWT Layout 。它将所有子项组织在一行或一列中,并强制它们具有相同的大小。

以下行告诉shell应用其布局并变为可见:

shell.pack();
shell.open();
 

最后但最重要的是,我们需要定义SWT程序的事件循环。需要事件循环来将用户输入事件从底层操作系统小部件传输到SWT事件系统。

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

此循环将一直运行,直到释放shell。一旦发生这种情况,显示器也会被丢弃,程序将终止。当程序循环时,它将读取下一个操作系统事件并将其传输到SWT。如果没有事件,则线程将休眠直到下一个事件到达。

安装或设置

有关设置或安装swt的​​详细说明。