⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a.java~3~

📁 swing下如何实现flash
💻 JAVA~3~
字号:
package swt_flash;


import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;

import com.docuverse.swt.flash.FlashPlayer;
import com.docuverse.swt.flash.FlashPlayerListener;
/*
 1、SWT程序的开发
用eclipse开发SWT程序需要用到org.eclipse.swt包中的类,所以在构建路径中要把org.eclipse.swt_3.x.x.jar加进去,可以在工程的属性里维护构建路径的时候,在库选项卡里选择“添加库”把“插件依赖项”选中添加到项目中。
小程序代码如下:
package com.plugins;import org.eclipse.swt.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.events.*;public class SWTtest {/**
   * @param args
   */
public static void main(String[] args) {
   Display display = new Display();
   Shell shell = new Shell(display);
   shell.setLayout(new RowLayout());
   initshell(shell);
   shell.pack();
   shell.open();
   while (!shell.isDisposed()) {
    if (!display.readAndDispatch()) {
     display.sleep();
    }
   }
   display.dispose();
}public static void initshell(Shell shell) {
   GridLayout gShellLay = new GridLayout();
   shell.setLayout(gShellLay);
   Composite panel = new Composite(shell, SWT.NONE);
   GridData gPanelData = new GridData(GridData.GRAB_HORIZONTAL,
     GridData.GRAB_VERTICAL, true, true);
   panel.setLayoutData(gPanelData);
   GridLayout gPanelLay = new GridLayout();
   panel.setLayout(gPanelLay);
   final Color bkcolor = new Color(Display.getCurrent(), 200, 0, 200);
   panel.setBackground(bkcolor);
   final Text text = new Text(panel, SWT.MULTI / SWT.WRAP);
   GridData gTextData = new GridData(GridData.GRAB_HORIZONTAL,
     GridData.GRAB_VERTICAL, true, true);
   text.setLayoutData(gTextData);
   Button butt = new Button(panel, SWT.PUSH);
   butt.setText("PUSH");
   butt.addMouseListener(new MouseAdapter() {
    public void mouseDown(MouseEvent e) {
     text.setText("Hello,SWT");
    }
   });
   shell.addDisposeListener(new DisposeListener() {
    public void widgetDisposed(DisposeEvent e) {
     bkcolor.dispose();
    }
   });
}
}
实现的是一个按钮和文本框显示,点击按钮在文本框中显示内容。
但是运行时仍然会抛出java.lang.UnsatisfiedLinkError: no swt-win32-3236 in java.library.path异常,这是因为SWT使用的JNI技术需要通过dll提供的接口访问windows本地API,我们需要使java程序在启动的时候即能够访问它们,你可以有多种办法实现这个目的:
a>最简单的办法就是直接把这几个文件拷贝到你jdk的bin目录下。
b>你也可以设定环境变量,在PATH中加入这几个dll文件的目录。
c>你还可以在运行程序的时候指定java.library.path为这几个dll所在的目录,在eclipse中,如果你打开Help菜单中About Eclipse Platform,然后在出现的对话框中选择configuration details按钮,你可以在接下来出现的对话框中找到java.library.path。
配置java.library.path你还有另外一种办法,就是在运行程序的时候,从Run菜单中选择Run As..而不是Run As Java Application,填写好必要的其他参数以后打开Argument选项卡,然后在VM Argument输入框中填写该参数为dll文件的路径:-Djava.library.path=E:\EJBTEST\test\lib(我的dll文件都在该目录下)。
通过以上工作,你就可以编写和运行SWT程序了。2、SWT程序的打包
程序开发好之后,要把程序发布成独立的可执行文件,要先导出成jar文件:具体导出步骤就不说了,第一次导出时选生成清单文件,然后提取导出的清单文件MANIFEST.MF;修改清单文件内容为:
Manifest-Version: 1.0
Class-Path: ./lib/org.eclipse.core.runtime_3.2.0.v20060603.jar ./lib/org.eclipse.swt.win32.win32.x86_3.2.2.v3236.jar
Main-Class: com.plugins.SWTtest(注意":"后面都有一个空格);然后再一次将程序导出jar文件,这次选择修改后的清单文件。
在导出目录新建lib目录,将org.eclipse.core.runtime_3.2.0.v20060603.jar和org.eclipse.swt.win32.win32.x86_3.2.2.v3236.jar两个包考到lib目录下,并将org.eclipse.swt.win32.win32.x86_3.2.2.v3236.jar中的swt-win32-3236.dll解压到导出目录中;将导出的jar文件用javaw运行,程序正常执行,大功告成。


 */
public class A implements FlashPlayerListener {
        Shell shell;
        FlashPlayer player;

        private void createMenuBar() {
                Menu menuBar = new Menu(shell, SWT.BAR);
                shell.setMenuBar(menuBar);

                MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
                item.setText("Color");
                Menu menu = new Menu(shell, SWT.DROP_DOWN);
                item.setMenu(menu);

                MenuItem subItem = new MenuItem(menu, SWT.NULL);
                subItem.setText("Red");
                subItem.addSelectionListener(new SelectionAdapter() {
                        public void widgetSelected(SelectionEvent event) {
                                player.setVariable("buttonColor", "0xFF0000");
                        }
                });
                subItem = new MenuItem(menu, SWT.NULL);
                subItem.setText("Blue");
                subItem.addSelectionListener(new SelectionAdapter() {
                        public void widgetSelected(SelectionEvent event) {
                                player.setVariable("buttonColor", "0x0000FF");
                        }
                });
                subItem = new MenuItem(menu, SWT.NULL);
                subItem.setText("Green");
                subItem.addSelectionListener(new SelectionAdapter() {
                        public void widgetSelected(SelectionEvent event) {
                                player.setVariable("buttonColor", "0x00FF00");
                        }
                });
        }

        private void createFlashApp() {
                player = new FlashPlayer(shell, SWT.NONE, this);
                // this line loads the flash movie from disk
                player.loadMovie(0,"d:\\a.swf");
                player.setSize(150, 150);
                player.activate();
        }

        public static void main (String [] args) {
                Display display = new Display();
                Shell shell = new A().open (display);

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

        public Shell open (Display display) {
                shell = new Shell (display);

                createMenuBar();
                createFlashApp();

                shell.setSize(150, 200);
                shell.open();

                return shell;
        }

        public void onFSCommand(String param, String value) {
                System.out.println("\nFSCommand:\nParam = " + param + "\nValue = " + value);
        }

        public void onReadyStateChange(int arg) {}
        public void onProgress(int arg) {}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -