java swt button_JAVA.SWT/JFace: SWT基本组件之按钮(Button)

article/2025/9/14 4:13:28

《Eclipse SWT/JFACE 核心应用》 清华大学出版社 5.2 按钮(Button)

按钮有普通按钮(SWT.PUSH)、单选按钮(SWT.RADIO)、多选按钮(SWT.CHECK)、箭头按钮(SWT.ARROW)和切换按钮(SWT.TOGGLE)几种类型。

同时,也可以设置按钮的样式。设置按钮文字对齐的样式有SWT.LEFT、SWT.RIGHT和SWT.CENTER。设置按钮的外观风格的样式有SWT.FLAT和SWT.BORDER。

1. 普通按钮(SWT.PUSH)

package www.swt.com;

import org.eclipse.swt.SWT;

import org.eclipse.swt.layout.RowLayout;

import org.eclipse.swt.widgets.Button;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Shell;

public class testButton {

/**

* @param args

*/

public static void main(String[] args) {

Display display = new Display();

Shell shell = new Shell(display);

shell.setSize(600, 100);

shell.setLayout(new RowLayout(SWT.HORIZONTAL));

shell.setText("Button");

Button bt1 = new Button(shell, SWT.PUSH | SWT.LEFT);

bt1.setText("SWT.LEFT");

bt1.setToolTipText("SWT.LEFT"); //悬浮提示

Button bt2 = new Button(shell, SWT.PUSH | SWT.RIGHT);

bt2.setText("SWT.RIGHT");

bt2.setToolTipText("SWT.RIGHT");

Button bt3 = new Button(shell, SWT.PUSH | SWT.CENTER);

bt3.setText("SWT.CENTER");

bt3.setToolTipText("SWT.CENTER");

Button bt4 = new Button(shell, SWT.PUSH | SWT.FLAT);

bt4.setText("SWT.FLAT");

bt4.setToolTipText("SWT.FLAT");

Button bt5 = new Button(shell, SWT.PUSH | SWT.BORDER);

bt5.setText("SWT.BORDER");

bt5.setToolTipText("SWT.BORDER");

//   bt1.pack();

//   bt2.pack();

//   bt3.pack();

//   bt4.pack();

//   bt5.pack();

shell.open();

shell.pack();

while (!shell.isDisposed()) {

if (!display.readAndDispatch()) {

display.sleep();

}

}

display.dispose();

}

}

显示效果:

6bdf36b2b966ad8bddd3b548f696127d.png

2. 切换按钮(SWT.TOGGLE)

切换按钮单击后保持按下状态,再次单击时恢复初始状态。

Button bt1 = new Button(shell, SWT.TOGGLE | SWT.LEFT);

bt1.setText("SWT.LEFT");

bt1.setToolTipText("SWT.LEFT"); //悬浮提示

Button bt2 = new Button(shell, SWT.TOGGLE | SWT.FLAT);

bt2.setText("SWT.FLAT");

bt2.setToolTipText("SWT.FLAT");

Button bt3 = new Button(shell, SWT.PUSH | SWT.BORDER);

bt3.setText("SWT.BORDER");

bt3.setToolTipText("SWT.BORDER");

显示效果:

69dbbc3f60611ae08d9c711eefc5fd1d.png

3. 箭头按钮(SWT.ARROW)

箭头按钮是带有小箭头的按钮,创建时需要指定箭头的方向SWT.UP、SWT.DOWN、SWT.LEFT和SWT.RIGHT,若不指定方向,默认为SWT.UP。

Button bt1 = new Button(shell, SWT.ARROW | SWT.UP);

Button bt2 = new Button(shell, SWT.ARROW | SWT.DOWN);

Button bt3 = new Button(shell, SWT.ARROW | SWT.LEFT);

Button bt4 = new Button(shell, SWT.ARROW | SWT.RIGHT);

Button bt5 = new Button(shell, SWT.ARROW | SWT.FLAT);

Button bt6 = new Button(shell, SWT.ARROW | SWT.BORDER);

显示效果:

3ba1555c863d374875bab74d5bc8c4d7.png

4. 单选按钮(SWT.RADIO)

Group group1 = new Group(shell, SWT.SHADOW_ETCHED_OUT);

group1.setLayout(new FillLayout(SWT.VERTICAL));

group1.setText("这是一组样式");

Button bt1 = new Button(group1, SWT.RADIO | SWT.LEFT);

bt1.setText("SWT.LEFT");

Button bt2 = new Button(group1, SWT.RADIO | SWT.RIGHT);

bt2.setText("SWT.RIGHT");

Button bt3 = new Button(group1, SWT.RADIO | SWT.CENTER);

bt3.setText("SWT.CENTER");

//

Group group2 = new Group(shell, SWT.SHADOW_ETCHED_OUT);

group2.setLayout(new FillLayout(SWT.VERTICAL));

group2.setText("这是另一组样式");

Button bt4 = new Button(group2, SWT.RADIO | SWT.FLAT);

bt4.setText("SWT.FLAT");

bt4.setSelection(true);

Button bt5 = new Button(group2, SWT.RADIO | SWT.BORDER);

bt5.setText("SWT.BORDER");

Button bt6 = new Button(group2, SWT.RADIO);

bt6.setText("SWT.RADIO");

对于单选按钮,创建对象时要指定按钮所属的父类。

显示效果:

39e2fb77bad51aa5a6670471fbd1e86a.png

group2.setVisible(false); 显示效果:

2103348d584f315e20bbf7f13f4ab0d9.png

5. 多选按钮(SWT.CHECK)

Group group = new Group(shell, SWT.SHADOW_ETCHED_OUT);

group.setLayout(new FillLayout(SWT.VERTICAL));

group.setText("不同样式的多选按钮");

Button bt1 = new Button(group, SWT.CHECK | SWT.LEFT);

bt1.setText("SWT.LEFT");

Button bt2 = new Button(group, SWT.CHECK | SWT.RIGHT);

bt2.setText("SWT.RIGHT");

Button bt3 = new Button(group, SWT.CHECK | SWT.CENTER);

bt3.setText("SWT.CENTER");

Button bt4 = new Button(group, SWT.CHECK | SWT.FLAT);

bt4.setText("SWT.FLAT");

Button bt5 = new Button(group, SWT.CHECK | SWT.BORDER);

bt5.setText("SWT.BORDER");

显示效果:

ac28c1c0a30bf0cbd604920268ceb44f.png

增加事件:

RowLayout layout = new RowLayout(SWT.VERTICAL);

layout.marginWidth = 10;

shell.setLayout(layout);

Group group = new Group(shell, SWT.SHADOW_ETCHED_OUT);

group.setLayout(new FillLayout(SWT.VERTICAL));

group.setText("您的爱好是:");

final Button[] button = new Button[5];

String[] items = {"看书", "游泳", "音乐", "睡觉", "逛街"};

for (int i = 0; i < button.length; i++) {

button[i] =new Button(group, SWT.CHECK);

button[i].setText(items[i]);

}

Button ok = new Button(group, SWT.PUSH);

ok.setText("确定");

ok.addSelectionListener(new SelectionAdapter() {

public void widgetSelected(SelectionEvent e) {

for (int i = 0; i < button.length; i++) {

if (button[i].getSelection()) {

System.out.println("您选择了:"+button[i].getText());

}

}

}

});

显示效果:

4dc939f4437d86dfd33ee58cae6343ca.png

6. 常用的方法

设置和获取按钮文本:setText、getText

设置和获取按钮是否被选中:setSelection、getSelection

设置和获取按钮图标:setImage、getImage

button.setImage(display.getSystemImage(SWT.ICON_ERROR))

button.setImage(new Image(display, "F:\\edit.gif"))

设置和获取按钮文字对齐方式:setAlignment、getAlignment

添加代码:

ok.setImage(display.getSystemImage(SWT.ICON_INFORMATION));

显示效果:

bdad123814d1e37898d16ac862711734.png


http://chatgpt.dhexx.cn/article/S8lQVtlm.shtml

相关文章

Java SWT 表格Table实时刷新数据

一、动态展示数据 当对表格展示的数据进行删除和增加的时候&#xff0c;想实时进行表格数据更新显示。用到的方法是&#xff0c;首先将表格数据全部删掉&#xff0c;然后在读取数据库最新的数据显示到表格中。  可以将显示表格信息的代码封装成一个方法&#xff0c;当对当前表…

Java SWT封装Table显示数据

一个表格就类似于一张二维表。第一行为关系模型&#xff0c;就是每一列的列名。从第二行开始就是表的数据&#xff0c;简称元组。下面实现对其Table的封装。 首先显示一个窗口。创建一个Table。将在showTableInfos()方法对Table表格进行封装。 import org.eclipse.swt.widgets.…

SWT控件总结

控件palette 1.System Choose component 选择组件&#xff1a;允许选择组件类型并将其拖放到设计画布上 Tab Order标签的顺序&#xff1a;设置所选选项卡顺序 2.Composites Composite 复合&#xff1a;能够包含其他控件的控件 Group 集团&#xff1a;提供带有可选标题的蚀…

SWT和JFace应用笔记

SWT和JFace应用笔记 链接&#xff1a;https://pan.baidu.com/s/1To4Lhgan4xEr1iaFA0Rerg 提取码&#xff1a;63qm 1.SWT笔记 一.创建一个SWT程序有3个部分 1.初始化窗口:首先创建Dispaly对象和Shell对象。Display&#xff1a;对象封装了调用操作系统的有关方法Shell&#xf…

matlab swt函数,matlab swt 函数出错

matlab swt 函数出错 我在用matlab swt 函数分解信号时总是出现以下错误&#xff0c;麻烦各位高手告知该怎么修改&#xff0c;swt函数如何ERROR ... ---------------------------------------------------------------------------------------------------------------------…

【SWT】自定义数据表格

目的 使用SWT技术自定义数据表格&#xff0c;本文抛砖引玉&#xff0c;给出了SWT构建数据表格的基本思路和简单实现。更多特殊需求即表格功能实现待续…… 思路 数据表格由表格头与表格体两边部分组成。 表格头部分是固定的&#xff0c;其字段右侧包含一个简单的表格工具–…

【SWT】Lable 文字折行

目标 当Label 中的文字过多时&#xff0c;使得文字折行显示。 效果如图所示&#xff1a; 分析与实践 Label 自带样式是一行显示所有信息。当一行显示不下时&#xff0c;超出部分会被隐藏掉&#xff0c;当Label有足够长度时再将其展示出来。Label这种处理超出部分的方式很粗…

java swt 几种布局_实战SWT布局

fortune 阅读(577) 评论(0) 编辑 收藏 所属分类: java技术 标准的SWT布局类FillLayout&#xff1a;在容器中以相同的大小单行或单列的排列组件 RowLayout&#xff1a;以单行或多行的方式使用几个选项(fill,wrap,spacing,justify,type)定制组件的排列方式 GridLayout&#xff…

【SWT】内容分割线

目标 SWT 容器中画横向直线或竖向直线将容器中的内容分割开来。本文介绍了官方的两个示例&#xff0c;效果图见实践部分。 分析 SWT 中至少由两种方法画直线&#xff08;横向或纵向&#xff09; SWT 中的GC可以画直线 这种方法最容易想到&#xff0c;但实现起来比较麻烦&a…

SWT

strock width transform,全称笔画宽度变换&#xff0c;是一种局部的图像算子用于提取字符&#xff08;letter&#xff09;的笔画宽度作为图像特征。算法步骤如下&#xff1a; 分成三个部分&#xff1a; - 用canny算子计算梯度及方向 - SWT提取笔画宽度得到字符候选区域&am…

eclipse下搭建SWT图形界面开发环境

什么是SWT 参考&#xff1a;http://www.cppblog.com/baby-fly/archive/2009/10/20/99008.html 用java的人一定都知道AWT和Swing&#xff0c;而SWT(Standard Widget Toolkit)则是由Eclipse项目组织开发的一套完整的图形界面开发包&#xff0c;虽然当初仅仅是IBM为了编写Eclipse的…

SWT布局(Layouts)

每种类型操作系统对屏幕的定义不一样&#xff0c;在开发跨平台应用软件时&#xff0c;我们一般都会使用布局&#xff08;Layout&#xff09;来管理复合控件&#xff08;Composite&#xff09;中子控件的位置和大小。通过布局&#xff0c;程序员可以充分展示那些埋没已久的艺术细…

SWT简介

SWT简介 1. 为什么要使用SWT?  SWT是一个IBM开发的跨平台GUI开发工具包。在SWT之前&#xff0c;Sun已经提供了一个跨平台GUI开发工具包AWT (Abstract Windowing Toolkit)。虽然AWT框架也使用的是原生窗口部件(native widgets)&#xff0c;但是它一直未能突破LCD问题。LCD问…

[转]实时股票数据接口大全

from: http://www.21andy.com/blog/20090530/1313.html 实时股票数据接口大全 股票数据的获取目前有如下两种方法可以获取:1. http/javascript接口取数据2. web-service接口 1.http/javascript接口取数据 1.1Sina股票数据接口 以大秦铁路&#xff08;股票代码&#xff1a;…

股票数据在线获取

推荐&#xff1a;使用如下地址注册tushare并分享此链接。 https://tushare.pro/register?reg133232 分享此链接&#xff0c;注册tushare. 以前是使用tushare等下载保存到本地数据库后进行计算分析。 现在不想维护本地数据库&#xff0c;想使用时直接在线获取数据。经查找如…

获取股票实时交易数据的方法

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 获取股票实时交易数据的方法 注:本文为原创文章,转载时请注明转载地址。炒股有一段时间…

实时股票数据接口 (转,以防有用)

&#xfeff;&#xfeff; http://blog.sina.com.cn/s/blog_510844b70102wrvf.html 实时股票数据接口 股票数据的获取目前有如下两种方法可以获取: 1. http/javascript接口取数据 2. web-service接口 1.http/javascript接口取数据1.1Sina股票数据接口 以大秦铁路&#xff08;…

获取股票数据【实时更新股票数据、创建你的股票数据】、计算交易指标【买入、卖出信号、计算持仓收益、计算累计收益率】

在上一次获取股票数据【使用JQData查询行情数据、财务指标、估值指标】学习了使用JQData来查询股票相关数据&#xff0c; 这次则开始一点点构建咱们的量化交易系统了。 量化交易平台功能模块了解&#xff1a; 对于一个量化交易平台&#xff0c;它主要包含如下功能模块&#x…

使用Python获取股票实时数据和历史数据

决定新建一个专栏&#xff0c;专门研究股票数据的API接口。 由于不是混金融领域的人&#xff0c;百度调研了一会儿&#xff0c;没有找到合适的大公司维护的API接口。 yahoo-finance PyPI 这玩意架梯子都访问不到数据&#xff0c;不知道乍回事。许多大牛维护的pip包都是基于这…

Tushare免费获取股票数据:实时数据,历史数据,行情数据

一 操作手册 引导用户顺利开始使用Tushare Pro数据&#xff0c;以下步骤将带您开始Tushare数据之旅&#xff1a; 用户注册登录后可调用数据&#xff1a;https://tushare.pro/register?reg399205 二 如何获取TOKEN凭证 1、登录成功后&#xff0c;点击右上角->个人主页 2、…