swt4-gtk:基于 GTK 的跨平台 GUI 库项目

可用于开发 JVM 桌面应用的图形用户界面,提供跨平台支持,核心功能包括窗口组件、布局管理和事件处理,是 Eclipse 等知名应用的 GUI 基础库。【此简介由AI生成】

Branch1Tags0

SWT 矩阵构建 SWT 矩阵测试

关于

SWT 是一个跨平台的 GUI 库,适用于基于 JVM 的桌面应用程序。 最著名的基于 SWT 的应用程序是 Eclipse

快速开始

SWT 提供了平台特定的 jar 文件。 从 https://download.eclipse.org/eclipse/downloads/index.html 下载,并将 jar 文件添加到您的类路径中。

示例

示例

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class HelloWorld {

	public static void main(String[] args) {
		final Display display = new Display();

		final Shell shell = new Shell(display);
		shell.setText("Hello World");
		shell.setLayout(new GridLayout(2, false));

		final Label label = new Label(shell, SWT.LEFT);
		label.setText("Your &Name:");
		label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));

		final Text text = new Text(shell, SWT.BORDER | SWT.SINGLE);
		final GridData data = new GridData(SWT.FILL, SWT.CENTER, true, false);
		data.minimumWidth = 120;
		text.setLayoutData(data);

		final Button button = new Button(shell, SWT.PUSH);
		button.setText("Say Hello");
		shell.setDefaultButton(button);
		button.setLayoutData(new GridData(SWT.END, SWT.CENTER, false, false, 2, 1));

		final Label output = new Label(shell, SWT.CENTER);
		output.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));

		button.addListener(SWT.Selection, event -> {
			String name = text.getText().trim();
			if (name.length() == 0) {
				name = "world";
			}
			output.setText("Hello " + name + "!");
		});

		shell.setSize(shell.computeSize(SWT.DEFAULT, SWT.DEFAULT));
		shell.open();

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

		display.dispose();
	}
}

首先,创建一个Display,它是所有GUI相关代码的核心枢纽。
接着,创建一个Shell,在本例中即顶层窗口。
随后构建所有子控件及其监听器,包括布局信息。
最终,我们根据子控件自动计算窗口尺寸并显示窗口。
while循环持续处理所有GUI事件,直至窗口关闭触发释放操作。
退出前需释放所有占用的GUI资源。

参与SWT开发

感谢您对本项目的关注。

通用Eclipse平台贡献指南请参阅:
https://github.com/eclipse-platform/.github/blob/main/CONTRIBUTING.md

开发者资源:

以下说明如何为SWT贡献功能或修复错误:

源代码管理、构建流程、编码规范等信息可通过以下链接获取:

贡献者许可协议:

提交贡献前,需签署Eclipse基金会贡献者许可协议(CLA):

联系渠道:

通过项目开发者邮件列表联系:

缺陷查询:

SWT历史开发问题记录于Bugzilla:

提交新缺陷:

可通过Github问题跟踪器提交缺陷和功能请求。我们始终欢迎贡献!

请注意本项目主要由志愿者维护。若您不自行提供实现方案(或委托他人实现),问题可能长期无法解决。对于严重缺陷,可能会有其他贡献者介入修复。

Introduction

可用于开发 JVM 桌面应用的图形用户界面,提供跨平台支持,核心功能包括窗口组件、布局管理和事件处理,是 Eclipse 等知名应用的 GUI 基础库。【此简介由AI生成】

Customize my domain