import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.layout.RowData;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.ProgressBar;
import org.eclipse.swt.widgets.Shell;
public class ProgressBar3 {
private Display display;
private Shell shell;
private Composite statusbar;
private Label statusbarLabel;
private ProgressBar progressBar;
private Button hideProbarButton;
public static void main(String[] args) { new ProgressBar3().open(); }
private void open() {
display = Display.getDefault();
shell = new Shell();
shell.setSize(250, 170);
// ---------创建窗口中的其他界面组件-------------
shell.setLayout(new GridLayout());
createMainComp(shell);//创建主面板
createStatusbar(shell);//创建工具栏
// -----------------END------------------------
shell.layout();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
private void createMainComp(Composite parent) {
Composite comp = new Composite(parent, SWT.BORDER);
comp.setLayoutData(new GridData(GridData.FILL_BOTH));
comp.setLayout(new RowLayout());
createButton(comp);
}
private void createButton(Composite parent) {
final Button b1 = new Button(parent, SWT.NONE);
b1.setText("隐藏状态栏");
b1.addSelectionListener(new SelectionAdapter() {
private boolean flag = true;
public void widgetSelected(SelectionEvent e) {
// 用statusbar.setVisible(false)来隐藏状态栏是不够的,还必须把它占用的空间也释放出来,这时应该用GridData.exclude
GridData data = (GridData) statusbar.getLayoutData();
data.exclude = flag;
shell.layout();
b1.setText((flag ? "显示" : "隐藏") + "状态栏");
flag = !flag;
}
});
hideProbarButton = new Button(parent, SWT.NONE);
hideProbarButton.setText("隐藏进度条");
hideProbarButton.setEnabled(false);
hideProbarButton.addSelectionListener(new SelectionAdapter() {
private boolean flag = false;
public void widgetSelected(SelectionEvent e) {
progressBar.setVisible(flag);
hideProbarButton.setText((flag ? "隐藏" : "显示") + "进度条");
flag = !flag;
}
});
final Button b3 = new Button(parent, SWT.NONE);
b3.setText(" GO ");
b3.addSelectionListener(new SelectionAdapter() {
private boolean stopFlag = true;
public void widgetSelected(SelectionEvent e) {
stopFlag = !stopFlag;
if (stopFlag) // 根据停止标志stopFlag来判断是停止还是运行
stop();
else
go();
}
private void stop() {
b3.setEnabled(false);// 停止需要时间,在完全停止前要防止再次开始。
b3.setText("GO");
}
private void go() {
b3.setText("STOP");
progressBar = createProgressBar(statusbar);
hideProbarButton.setEnabled(true);
statusbar.layout();// 重新布局一下工具栏,使进度条显示出来
new Thread() {
public void run() {
for (int i = 1; i < 11; i++) {
if (display.isDisposed() || stopFlag) {
disposeProgressBar();
return;
}
moveProgressBar(i);
try { Thread.sleep(1000); } catch (Throwable e2) {} //停一秒
}
disposeProgressBar();
}
private void moveProgressBar(final int i) {
display.asyncExec(new Runnable() {
public void run() {
if (!statusbarLabel.isDisposed())
statusbarLabel.setText("前进到第" + i + "步");
if (!progressBar.isDisposed())
progressBar.setSelection(i * 10);
}
});
}
private void disposeProgressBar() {
if (display.isDisposed()) return;
display.asyncExec(new Runnable() {
public void run() {
hideProbarButton.setEnabled(false);
// 这一句不能放在线程外执行,否则progressBar被创建后就立即被dispose了
progressBar.dispose();
b3.setEnabled(true);
}
});
}
}.start();
}
});
没有合适的资源?快使用搜索试试~ 我知道了~
SWT.rar_ java swt_SWT_java swt_java s_java swt
共88个文件
class:56个
java:23个
jpg:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 89 浏览量
2022-09-21
07:58:33
上传
评论
收藏 121KB RAR 举报
温馨提示
SWT实例,java开发应用,简单实用,适用于初学者
资源推荐
资源详情
资源评论
收起资源包目录
SWT.rar (88个子文件)
SWT
bin
progressbar$1.class 1010B
comboofcoolbar$1.class 763B
Java_SWT.class 1014B
QQ$MySelectionListener.class 1KB
menuOf.class 2KB
button1.class 4KB
ProgressBar3$3$1$1.class 1KB
stacklayout$2.class 1KB
stacklayout$1.class 1KB
SIMPLEEDITOR.class 3KB
demo.class 1002B
ProgressBar3$2.class 1KB
otherSWT$1.class 950B
otherSWT.class 2KB
otherSWT$2.class 765B
QQ.class 7KB
ProgressBar3$3$1$2.class 1KB
tree1$1.class 1KB
traytest$2.class 619B
menuOf$1.class 674B
traytest$1.class 1KB
demoOfShell$1$1.class 897B
ProgressBar3$3$1.class 2KB
progressbar.class 2KB
fillLayout.class 1KB
SASHFORM.class 1KB
button1$3.class 1KB
demoOfShell.class 1KB
stacklayout.class 2KB
button1$4.class 1022B
SIMPLEEDITOR$1.class 755B
tree2.class 2KB
component.class 2KB
ProgressBar3$3.class 2KB
traytest$3.class 724B
ProgressBar3.class 4KB
button1$6.class 2KB
comboofcoolbar.class 3KB
gridlayout.class 2KB
rowLayout.class 2KB
silder.class 2KB
scrolledcomposite.class 2KB
button1$5.class 1KB
traytest.class 3KB
button1$2.class 1019B
formlayout.class 1020B
button1$1.class 818B
menuOf$2.class 763B
demoOfShell$1.class 2KB
tree1.class 2KB
traytest$5.class 742B
ProgressBar3$1.class 2KB
traytest$4.class 724B
silder$1.class 1023B
demoOfShell$1$2.class 950B
traytest$6.class 1KB
META-INF
MANIFEST.MF 262B
.settings
org.eclipse.jdt.core.prefs 330B
src
button1.java 5KB
menuOf.java 3KB
QQ.java 8KB
Java_SWT.java 924B
traytest.java 3KB
comboofcoolbar.java 3KB
SASHFORM.java 1KB
stacklayout.java 2KB
fillLayout.java 2KB
progressbar.java 2KB
otherSWT.java 2KB
demo.java 981B
SIMPLEEDITOR.java 3KB
rowLayout.java 2KB
launcher.cfg 68B
ProgressBar3.java 9KB
tree2.java 1KB
Launch.exe 232KB
tree1.java 2KB
demoOfShell.java 2KB
silder.java 1KB
formlayout.java 987B
component.java 2KB
gridlayout.java 2KB
scrolledcomposite.java 2KB
.project 664B
build.properties 80B
.classpath 307B
icon
1.jpg 833B
head.jpg 2KB
共 88 条
- 1
资源评论
林当时
- 粉丝: 97
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 蓝桥杯2024年第十五届省赛真题-前缀总分
- com.qihoo.appstore_300101305-1.apk
- tensorflow-gpu-2.7.1-cp37-cp37m-manylinux2010-x86-64.whl
- tensorflow-2.7.2-cp37-cp37m-manylinux2010-x86-64.whl
- tensorflow-2.7.1-cp39-cp39-manylinux2010-x86-64.whl
- 蓝桥杯2024年第十五届省赛真题-传送阵
- com.qihoo.appstore_300101305.apk
- linux之线程同步一.doc
- keil5配色方案10种
- python烟花代码.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功