栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SWT项目搭建、打包(可执行jar)、部署(包装exe)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SWT项目搭建、打包(可执行jar)、部署(包装exe)

简述

SWT与Eclipse插件(RCP)不同。SWT比较原生,后者是基于前者而起的一个框架,它能结合Eclipse提供的功能自动的打成一个exe的可执行文件。而SWT需要做额外的操作。

本文记述了SWT项目搭建、打包(可执行jar)、部署(exe)的全过程。

一、SWT 项目搭建
    创建java项目

File -> new -> java project 或如下图创建 Java Project 填写项目信息
我用的是jdk11,提示时候创建swt03的模块,点击 don't create
生成的标准 java 项目如下图
在根目录下新建lib包,以便存放扩展jar包,此时项目结构如下

    制作swtjar包

如图找到Eclipse安装目录的 plugins 目录

使用org.eclipse.swt寻找 org.eclipse.swt.win32.win32.x86_64_xxxxxxxxxxxx.jar,如下图所示

将org.eclipse.swt.win32.win32.x86_64_xxxxxxxxxxxx.jar拷到文件夹lib中,并将其改名为swt.jar

选中swt.jar,右击->Build Path->add to Build Path ,此时项目结构如下图

可以此为例添加任何需要的jar

    制作 swt UI

src下创建包,比如com.xzbd在包中创建类SWT01.java ,如下

package com.xzbd;


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

public class SWT03 {   
  static Display display;     
  static Shell shell;     
  static Text dogName;     
  static Combo dogBreed;     
  static Canvas dogPhoto;     
  static Image dogImage;     
  static List categories;     
  static Text ownerName;     
  static Text ownerPhone;     
  public static void main(String[] args) {         
    display = new Display();         
    shell = new Shell(display);         
    shell.setText("Dog Show Entry");         
    GridLayout gridLayout = new GridLayout();
    gridLayout.numColumns = 3;         
    shell.setLayout(gridLayout);           
    new Label(shell, SWT.NONE).setText("Dog's Name:");         
    dogName = new Text(shell, SWT.SINGLE | SWT.BORDER);         
    GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);         
    gridData.horizontalSpan = 2;         
    dogName.setLayoutData(gridData);          
    new Label(shell, SWT.NONE).setText("Breed:");         
    dogBreed = new Combo(shell, SWT.NONE);         
    dogBreed.setItems(new String [] {"Collie", "Pitbull", "Poodle", "Scottie"});         
    dogBreed.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));          
    Label label = new Label(shell, SWT.NONE);         label.setText("Categories");         
    label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));           
    new Label(shell, SWT.NONE).setText("Photo:");         
    dogPhoto = new Canvas(shell, SWT.BORDER);         
    gridData = new GridData(GridData.FILL_BOTH);         
    gridData.widthHint = 80;         
    gridData.heightHint = 80;         
    gridData.verticalSpan = 3;         
    dogPhoto.setLayoutData(gridData);         
    dogPhoto.addPaintListener(new PaintListener() {             
      public void paintControl(final PaintEvent event) {                  
        if (dogImage != null) {                       
          event.gc.drawImage(dogImage, 0, 0);                  
        }             
      }        
    });         
    categories = new List(shell, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL);        
    categories.setItems(new String [] {"Best of Breed", "Prettiest Female", "Handsomest Male","Best Dressed", "Fluffiest Ears", "Most Colors",             "Best Performer", "Loudest Bark", "Best Behaved","Prettiest Eyes", "Most Hair", "Longest Tail","Cutest Trick"});        
    gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);        
    gridData.verticalSpan = 4;        
    int listHeight = categories.getItemHeight() * 12;        
    Rectangle trim = categories.computeTrim(0, 0, 0, listHeight);        
    gridData.heightHint = trim.height;        
    categories.setLayoutData(gridData);          
    Button browse = new Button(shell, SWT.PUSH);        
    browse.setText("Browse...");        
    gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);        
    gridData.horizontalIndent = 5;        
    browse.setLayoutData(gridData);        
    browse.addSelectionListener(new SelectionAdapter() {             
      public void widgetSelected(SelectionEvent event) {                 
        String fileName = new FileDialog(shell).open();                  
        if (fileName != null) {                     
          dogImage = new Image(display, fileName);                 
        }            
      }       
    });        
    Button delete = new Button(shell, SWT.PUSH);      
    delete.setText("Delete");      
    gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);     
    gridData.horizontalIndent = 5;     
    delete.setLayoutData(gridData);     
    delete.addSelectionListener(new SelectionAdapter() {         
      public void widgetSelected(SelectionEvent event) {              
        if (dogImage != null) {                   
          dogImage.dispose();                   
          dogImage = null;                   
          dogPhoto.redraw();              
          }         
        }     
      });       
      Group ownerInfo = new Group(shell, SWT.NONE);             
      ownerInfo.setText("Owner Info");         
      gridLayout = new GridLayout();     
      gridLayout.numColumns = 2;     
      ownerInfo.setLayout(gridLayout);     
      gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);     
      gridData.horizontalSpan = 2;     
      ownerInfo.setLayoutData(gridData);       
      new Label(ownerInfo, SWT.NONE).setText("Name:");     
      ownerName = new Text(ownerInfo, SWT.SINGLE | SWT.BORDER);     
      ownerName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));       
      new Label(ownerInfo, SWT.NONE).setText("Phone:");     
      ownerPhone = new Text(ownerInfo, SWT.SINGLE | SWT.BORDER);     
      ownerPhone.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));       
      Button enter = new Button(shell, SWT.PUSH);     enter.setText("Enter");     
      gridData = new GridData(GridData.HORIZONTAL_ALIGN_END);     gridData.horizontalSpan = 3;     
      enter.setLayoutData(gridData);     
      enter.addSelectionListener(new SelectionAdapter() {         
        public void widgetSelected(SelectionEvent event) {                      
          System.out.println("/nDog Name: " + dogName.getText());              
          System.out.println("Dog Breed: " + dogBreed.getText());             
          System.out.println("Owner Name: " + ownerName.getText());              
          System.out.println("Owner Phone: " + ownerPhone.getText());              
          System.out.println("Categories:");              
          String cats[] = categories.getSelection();              
          for (int i = 0; i < cats.length; i++) {                   
            System.out.println("/t" + cats[i]);              
          }         
       }    
    });       
    shell.pack();     
    shell.open();     
    while (!shell.isDisposed()) {         
      if (!display.readAndDispatch()) display.sleep();     
    }     
    if (dogImage != null) {         
      dogImage.dispose();     
    }   
  }
}

右击 > run > java application,得到如下UI
至此,项目搭建完成,此时项目结构
二、打包(可执行jar)

打包的方式有很多,此处使用Eclipse export方式

右击 > Export ,打开如下对话框
如上图选择Runnable JAR file ,点击 Next 。
点击 finish ,打开 设定的文件找到 run-swt03.jar ,双击即可执行,效果如下
三、部署(包装为exe)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/704784.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号