SWT(JFace)体验之Icon任我变

 更新时间:2009年06月25日 09:26:25   作者:  
SWT(JFace)体验之Icon任我变
代码如下
复制代码 代码如下:

package swt_jface.demo;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
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.FileDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class IconSelector {
Display display = new Display();
Shell shell = new Shell(display);
Label labelIconFile;
Text textIconFile;

Button buttonIconBrowse;
Button buttonSetIcon;

Image shellIcon;

Image buttonIcon;

public IconSelector() {

initializeUI();

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

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

private void initializeUI() {
GridLayout gridLayout = new GridLayout(3, false);
shell.setLayout(gridLayout);
labelIconFile = new Label(shell, SWT.NULL);

textIconFile = new Text(shell, SWT.SINGLE | SWT.BORDER);

GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.grabExcessHorizontalSpace = true;
textIconFile.setLayoutData(gridData);
buttonIconBrowse = new Button(shell, SWT.PUSH);
gridData = new GridData();
gridData.horizontalSpan = 3;
gridData.horizontalAlignment = GridData.CENTER;
buttonSetIcon = new Button(shell, SWT.PUSH);
buttonSetIcon.setLayoutData(gridData);
shell.setText("Icon Selector");
labelIconFile.setText("Select an icon:");
buttonIconBrowse.setText("Browse");
buttonSetIcon.setText("Set Icon");
buttonIconBrowse.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
FileDialog dialog = new FileDialog(shell, SWT.OPEN);
String file = dialog.open();
if (file != null) {
textIconFile.setText(file);
}
}
});
buttonSetIcon.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
if(shellIcon != null)
shellIcon.dispose();

try {
shellIcon = new Image(display, textIconFile.getText());
shell.setImage(shellIcon);
}catch(Exception ex) {
ex.printStackTrace();
}
}
});
}

public static void main(String[] args) {
new IconSelector();
}
}

相关文章

  • intellij IDEA配置springboot的图文教程

    intellij IDEA配置springboot的图文教程

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。接下来通过本文给大家介绍intellij IDEA配置springboot的图文教程,感兴趣的朋友一起看看吧
    2018-03-03
  • Java:

    Java:"失效"的private修饰符

    本文主要介绍Java 失效的private修饰符,这里整理了相关资料说明private 修饰符的作用,如何使用并与C++ 做比较,有兴趣的小伙伴可以参考下
    2016-08-08
  • Java中Vector、ArrayList、LinkedList的关系详细解析

    Java中Vector、ArrayList、LinkedList的关系详细解析

    这篇文章主要介绍了Java中Vector、ArrayList、LinkedList的关系详细解析,Vector和ArrayList底层均为Object数组,LinkedList底层是Node节点,Vector是线程安全(底层方法均添加synchronized),ArrayList、LinkedList是线程不安全(无锁),需要的朋友可以参考下
    2023-11-11
  • Java设计模式之桥接模式的实现

    Java设计模式之桥接模式的实现

    今天给大家带来的文章是Java设计模式的相关知识点,文中对桥接模式作了非常详细的介绍及代码示例,对正在学习的小伙伴们很有帮助,需要的朋友可以参考下
    2021-06-06
  • 详解SpringMVC解决跨域的两种方案

    详解SpringMVC解决跨域的两种方案

    本篇文章主要介绍了详解SpringMVC解决跨域的两种方案,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Java中实现高清图片压缩的两种方案(最新推荐)

    Java中实现高清图片压缩的两种方案(最新推荐)

    文章首先介绍了Java中进行高清图片压缩的基本方法,包括使用Java标准库ImageIO和第三方库ApacheCommonsCompress,通过示例代码展示了如何调整图像质量和使用第三方工具来压缩图片文件,感兴趣的朋友跟随小编一起看看吧
    2025-01-01
  • Java中ByteBuddy动态字节码操作库的使用技术指南

    Java中ByteBuddy动态字节码操作库的使用技术指南

    ByteBuddy 是一个功能强大的 Java 字节码操作库,可以帮助开发者在运行时动态生成和修改类,而无需直接接触复杂的 ASM API,本文给大家介绍了Java ByteBuddy动态字节码操作库的使用技术指南,需要的朋友可以参考下
    2025-04-04
  • spring boot 使用Mybatis-plus查询方法解析

    spring boot 使用Mybatis-plus查询方法解析

    这篇文章主要介绍了spring boot 使用Mybatis-plus查询方法解析,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • idea创建maven父子工程导致子工程无法导入父工程依赖

    idea创建maven父子工程导致子工程无法导入父工程依赖

    创建maven父子工程时遇到一个问题,本文主要介绍了idea创建maven父子工程导致子工程无法导入父工程依赖,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • SVN报错:Error Updating changes:svn:E155037的解决方案

    SVN报错:Error Updating changes:svn:E155037的解决方案

    今天小编就为大家分享一篇关于SVN报错:Error Updating changes:svn:E155037的解决方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01

最新评论