NetBeans创建可拖拽到桌面的Applet

原创 2009年02月24日 16:20:00

JDK 6 update 10以上的版本中有个很新颖的特性,运行在浏览器中的Applet可以直接用鼠标托拽到桌面上,关闭浏览器器后,这个Applet依旧可以运行。下面介绍可托拽Applet的运行环境,用NetBeans 6.5 开发可托拽Applet的步骤,以及如何用Web Start调用Applet。

 

一.运行开发环境

可托拽Applet需要的运行环境:

1。安装JDK 6 update 10及以上的版本。(下载地址:http://java.sun.com/javase/downloads/?intcmp=1281)

2。浏览器支持。目前只有IE6,IE7和Firefox 3。

安装NetBeans 6.5。(下载地址:http://www.netbeans.org/)

 

二。NetBeans 6.5 开发可托拽Applet的步骤。

1.  创建项目,NetBeans中,File -> New Project, 打开“New Project”窗口,"Categories"选择“Java”, "Projects" 选择“ Java Class Library”, 点击“Next”。如下图 。

netbeans_create_java_class_library

在下一个“Name and Location”窗口中,“Project Name”栏目中输入项目名,比如“DraggableApplet”, 点击“Finish”。如下图。

netbeans_create_project

2. 创建Applet。NetBeans中,选中刚创建的项目,打开菜单“File -> New File...”, 出现“New File”窗口,“Categories”中选择“Java”, “File Type”中选择“Applet”, 点击“Next”。如下图。

netbeans_create_file_applet

在自动生成的NewApplet.java中添加显示“Hello World”字符串的代码。如下图。

public void paint(Graphics g) {
    g.drawString("Hello World",50,50);
}

netbeans_applet_paint_code

 

3. 选中“NewApplet.java”文件,鼠标右击,在弹出菜单中选择“Run File ”。如下图

netbeans_applet_run

4.运行Applet的结果是在“小程序查看器“中看到刚刚创建的"Hello World"Applet, 如下图。

netbeans_run_applet_container

通常,Applet是运行在浏览器中的。NetBeans运行Applet的同时, 还在项目的"Build"目录下自动创建了html文档。注意在"Files" Tab(不是"Projects"Tab)找到"Build"目录, 和"NewApplet.html"文件. 在NewApplet.html中增加一个关键参数 Draggable, 如下代码和图. 

netbeans_applet_html

5. 可以直接从NetBeans中打开浏览器. 鼠标右键点击"NewApplet.html",选择“View”, 如下图。

netbeans_html_view

运行结果如下:

draggable_applet_in_brower

6. 下面开始激动人心的托拽了。按住“Alt” 键,鼠标点击并按住Applet, 可以把Applet 拖出浏览器,放到桌面上。

draggable_applet_in_desktop

上图中,“Hello World”Applet已经被拖到了桌面上,原有在浏览器中的位置现显示一个Java Logo。如果关闭“Hello World”Applet, 那么这个Applet又会回到浏览器中。缺省设置下,按住Alt键,鼠标可以在桌面上移动Applet。关闭浏览器器后,这个“Hello World”Applet仍然运行。

 

脱离了浏览器的“Hello World”Applet运行在内存中,如果希望Applet类库能保存在本地,并且从本地启动的话,可以采用Web Start技术。JavaTM Web Start 是基于 Java 技术的应用程序的一种部署解决方案。它是连接计算机和 Internet 的便捷通道,允许用户在完全脱离 Web 的情况下运行和管理应用程序。Java Web Start 提供一次单击激活应用程序的简易方法,并保证始终运行应用程序的最新版本,从而可避免复杂的安装或升级过程。

三。为Applet设置Web Start

1. 为Applet设置Web Start启动,鼠标右键点击项目,选择“Project Properties”, 出现窗口。“Categories”选择“Application -> Web Start”,选中检查项“Enable Web Start”,点击“OK”。

netbeans_enable_web_start

2. Web Start 启动应用程序,需要有Main Class。现在为NewApplet.java增加一个“public void static main(String args[])”方法,创建一个Frame, 并把Applet加入到Frame中。代码如下(Note:  以下代码为演示而写,不具有普遍参考性)。

public static void main(String args[]){
    final Frame appletFrame = new Frame("Applet Web Start");
    appletFrame.addWindowListener(new WindowAdapter(){
        public void setClosingAction(WindowEvent e){
            System.exit(0);
        }
    });
    appletFrame.setVisible(true);

    NewApplet dragApplet = new NewApplet();
    appletFrame.add(dragApplet, BorderLayout.CENTER);
    appletFrame.pack();

    dragApplet.init();
    dragApplet.start();
}

还需要在“Project Properties”  窗口中,为“Run" 设置“Main Class”。如下图。

netbeans_project_properties_run

3. 鼠标右键点击“DraggableApplet”项目,选择“build”。NetBean会自动在“”目录下生成三个文件。DraggableApplet.jar, luanch.html, launch.jnlp. 如下图。

JNLP(Java Network Launching Protocol, Java网络加载协议,JSR 56 )经常与"Web Start"一起被提及。JNLP协议通过XML, 定义了怎么加载Web Start应用程序。JNLP文件包括一些信息,比如Jar包的位置,应用程序的main class, 以及一些参数设置。

netbeans_launch_jnlp

4. 在文件浏览器中双击“launch.jnlp”, 就可以运行Web Start启动的Applet了,如下图。

JNLP_launch_warning

JNLP_launch

四。进阶

这个演示程序仅使用了AWT组件, 而如果希望Applet的界面更美观, 开发更方便快捷, 可以使用NetBeans中的"Swing GUI Form", 能够可视化地在Applet中加入Swing(JFC)组件。下面这个链接演示了一个界面更丰富的可拖拽到桌面的Applet,使用了JFreeChart and JXLayer。

http://www.jroller.com/dgilbert/entry/jfreechart_and_jxlayer

 

Applet也可以集成到Web应用程序中,下面这个链接介绍了如何在NetBeans中实现这个功能。http://www.netbeans.org/kb/61/web/applets.html

 

Applet技术出现于1985年,而Web Start技术出现于2001年。在Java技术领域,目前这两样技术都不算流行,现在重新把它们拿出来介绍,是因为JavaFX的诞生。JavaFX依赖Applet和Web Start,某种程度上可以说,JDK 6 update 10版本的发布,就是为了配合JavaFX的推出,更多JavaFX的介绍,可以参考JavaFX 网站http://www.javafx.com, 中文JavaFX网站(http://developer.sun.com.cn/javafx/index.jsp)。

 

五。参考

http://java.sun.com/javase/technologies/desktop/javawebstart/index.jsp

http://en.wikipedia.org/wiki/Java_Web_Start

http://java.sun.com/javase/6/webnotes/6u10/plugin2/index.html#EXPERIMENTAL_FUNCTIONALITY 

http://java.sun.com/developer/technicalArticles/javase/6u10_applets/index.html 

https://jdk6.dev.java.net/plugin2/ 

http://java.sun.com/developer/technicalArticles/javase/newapplets/

(8)Launcher3分析之拖动图标的流程——移动

移动的逻辑还是比较清楚的,因为他抽象出来的模型十分易于理解的。 DropTarget是一个可放置(drop)区域的抽象,也就是我们松开手的时候想要把图标放到某个东西上,这个东西就是DropTar...
  • xufeifandj
  • xufeifandj
  • 2014年10月07日 09:20
  • 1232

Android 4.0 Launcher2源码分析——桌面快捷图标的拖拽

本文来自http://blog.csdn.net/chenshaoyang0011 转载请申明文章出处! 通过上一篇文章Android4.0Launcher2源码分析(五)——Workspa...
  • chenshaoyang0011
  • chenshaoyang0011
  • 2013年03月02日 10:46
  • 15308

[Cocoa]_[初级]_[文件拖放操作]

场景:支持所有类别的文件拖放(从外部直接拖文件到程序中) 实例: DragDropView.h #import @protocol DragDropViewDelegate; @interfac...
  • moqj_123
  • moqj_123
  • 2015年11月22日 17:43
  • 1244

NetBeans中拖拽Radio Button组成Button Group的方法

先向界面中拖拽两个RadioButton,你可以马上看到效果: 但是这时候两个RadioButton都可以选,并没有达到我需要的二选一的效果。所以要用Button Group将他...
  • ztk3939339
  • ztk3939339
  • 2012年07月09日 00:18
  • 1294

利用JavaFx开发RIA桌面应用-文件拖拽

给JavaFx中的TextField控件添加文件拖拽功能,即实现将文件或文件夹拖拽至TeuxtField中,TextField显示出相应的路径地址。...
  • loongshawn
  • loongshawn
  • 2016年11月03日 17:16
  • 2352

如何实现从桌面拖拽到网页

实现从桌面拖拽到网页   过去我们想实现网页中的拖拽效果,基本上都是使用DOM事件模型中的mousedown、mousemove、mouseup的事件监听来模拟拖拽效果,为了实现实时的拖拽移动效果...
  • Ahren_ye
  • Ahren_ye
  • 2012年08月06日 16:15
  • 614

Android 4.0 Launcher2源码分析——桌面快捷图标的拖拽

本文来自http://blog.csdn.net/chenshaoyang0011 转载请申明文章出处! 通过上一篇文章Android4.0Launcher2源码分析(五)——Workspace...
  • edmond999
  • edmond999
  • 2015年04月14日 15:05
  • 692

Jquery类似Win7的桌面图片拖拽

  • 2012年09月27日 18:09
  • 119KB
  • 下载

android桌面拖拽效果

  • 2016年07月21日 14:15
  • 3.37MB
  • 下载

SDK接受拖拽文件 桌面闪烁右下角图标

  • 2011年12月10日 21:57
  • 70KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NetBeans创建可拖拽到桌面的Applet
举报原因:
原因补充:

(最多只允许输入30个字)