Java Swing嵌入浏览器

合集下载

swing应用在web中显示的技术原理

swing应用在web中显示的技术原理

swing应用在web中显示的技术原理Swing是Java的一个桌面GUI工具包,它提供了丰富的组件和布局管理器,用于构建桌面应用程序。

然而,Swing也可以用于Web开发,通过使用JavaWeb技术,如JavaServlet和JavaServerPages(JSP),将Swing应用程序嵌入到Web 页面中。

本文将介绍Swing应用在Web中显示的技术原理。

一、Swing与Web技术的结合Swing应用程序通常在桌面环境中运行,使用Java的AWT和Swing组件来构建图形用户界面。

然而,随着Web技术的发展,人们开始探索将桌面应用程序移植到Web平台上的可能性。

其中一种方法是将Swing应用程序转换为Web应用程序,即将Swing组件嵌入到Web页面中。

为了实现这一目标,需要使用JavaWeb技术,如JavaServlet和JSP。

Servlet是JavaWeb开发的核心技术之一,它是一种在服务器端运行的Java程序,用于处理客户端请求并返回响应。

JSP(JavaServerPages)则是Servlet的一种扩展,它允许在HTML页面中嵌入Java代码,以生成动态网页内容。

通过使用Servlet和JSP,可以将Swing应用程序的界面组件嵌入到Web页面中,从而实现在Web浏览器中显示Swing应用程序的效果。

二、Swing组件的Web化要将Swing组件嵌入到Web页面中,需要将Swing组件转换为适合在Web环境中使用的形式。

这通常涉及将Swing组件转换为HTML和CSS表示形式,并使用适当的JavaScript代码来控制组件的行为和交互。

例如,可以将Swing的按钮转换为HTML的<button>元素,并使用CSS来设置样式。

同样,可以将Swing的文本框转换为HTML的<input>元素,并使用JavaScript来处理输入数据。

通过这种方式,可以将Swing组件封装成可以在Web 页面中使用的组件,并使用JavaScript来控制它们的行为和交互。

Java 网页浏览器组件介绍(全的4种)

Java 网页浏览器组件介绍(全的4种)

前言在使用Java 开发客户端程序时,有时会需要在界面中使用网页浏览器组件,用来显示一段HTML 或者一个特定的网址。

本文将介绍在界面中使用浏览器组件的四种方法,给出示例的代码,并且分析每种方法的优点与不足,便于Java 开发者在实际开发过程中根据自己的需要来选择。

回页首JDK 中的实现- JEditorPaneSwing 是一个用于开发Java 应用程序图形化用户界面的工具包,它是以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格,而且它是轻量级(light-weight)组件,没有本地代码,不依赖于操作系统的支持,这是它与AWT 组件的最大的区别。

在Swing 中,有一个组件是JEditorPane,它是一个可以编辑任意内容的文本组件。

这个类使用了EditorKit 来实现其操作,对于给予它的各种内容,它能有效地将其类型变换为适当的文本编辑器种类。

该编辑器在任意给定时间的内容类型由当前已经安装的EditorKit 来确定。

默认情况下,JEditorPane 支持以下的内容类型:•text/plain纯文本的内容,在此情况下使用的工具包是DefaultEditorKit 的扩展,可生成有换行的纯文本视图。

•text/htmlHTML 文本,在此情况下使用的工具包是javax.swing.text.html.HTMLEditorKit,它支持HTML3.2。

•text/rtfRTF 文本,在此情况下使用的工具包是类javax.swing.text.rtf.RTFEditorKit,它提供了对多样化文本格式(Rich Text Format)的有限支持。

JEditorPane 的常用方法JEditorPane()创建一个新的JEditorPane 对象JEditorPane(String url)根据包含URL 规范的字符串创建一个JEditorPaneJEditorPane(String type,String text)创建一个已初始化为给定文件的JEdiorPaneJEditorPane(URL initialPage)根据输入指定的URL 来创建一个JEditorPanescrollToReference(String reference)将视图滚动到给定的参考位置(也就是正在显示的URL 的URL.getRef 方法所返回的值)setContentType(String type)设置此编辑器所处理的内容类型setEditorKit(EditorKit kit)设置当前为处理内容而安装的工具包setPage(String url)设置当前要显示的URL, 参数是一个StringsetPage(URL page)设置当前要显示的URL, 参数是一个.URL 对象JEditorPane 需要注册一个HyperlinkListener 对象来处理超链接事件,这个接口定义了一个方法hyperlinkUpdate(HyperlinkEvent e),示例代码如下:public void hyperlinkUpdate(HyperlinkEvent event){if(event.getEventType() == HyperlinkEvent.EventType.ACTIVATED){try{jep.setPage(event.getURL());}catch(IOException ioe){ioe.printStackTrace();}}}完整的代码可以在本文中下载到。

java_swing_入门教程

java_swing_入门教程

Swing 甚至走得更远一步,在基本的UI 原则之上又放上了一个公共的设计模式。

这个设计模式叫做模型-视图-控制器(Model-View-Controller,MVC),它试图“把角色分开”。

MVC 让负责显示的代码、处理数据的代码、对交互进行响应并驱动变化的代码彼此分离。

JComponentSwing 的整个可视组件库的基础构造块是JComponent。

它是所有组件的父类。

它是一个抽象类,所以不能创建JComponent,但是作为类层次结构的结果,从字面意义来说它包含了数百个函数,Swing 中的每个组件都可以使用这些函数。

显然,有些概念要比其他概念重要,所以对于本教程,需要学习的重要的东西是:∙JComponent 不仅是Swing 组件的基类,还是定制组件的基类(有关的更多信息在“中级Swing”教程中)。

∙它为所有组件提供了绘制的基础架构——一些方便进行组件定制的东西(同样,在“中级Swing”中,有关于这个主题的更多信息)。

∙它知道如何处理所有的键盘按键。

所以类只需要侦听特定的键。

∙它包含add() 方法,可以添加其他JComponent。

换种方式来看,可以把任意Swing 组件添加到其他任何Swing 组件,从而构造嵌套组件(例如,JPanel 包含JButton,甚至包含一些古怪的组合,例如JMenu 包含JButton)。

简单的swing小部件Swing 库中最基础的组件是JLabel。

它所做的正是您所期望的:呆在那儿,看起来很漂亮,描述其他组件。

下图显示了的JLabel 实际应用:JLabel不太吸引人,但是仍然有用。

实际上,在整个应用程序中,不仅把JLabel 用作文本描述,还将它用作图片描述。

每当在Swing 应用程序中看到图片的时候,它就有可能是JLabel。

JLabel 对于Swing 初学者来说没有许多意料之外的方法。

基本的方法包括设置文本、图片、对齐以及标签描述的其他组件:∙get/setText():获取/设置标签的文本。

JavaSwing中嵌入JavaFX入门-Netbeans

JavaSwing中嵌入JavaFX入门-Netbeans

JavaSwing中嵌入JavaFX入门-Netbeans 1安装JDK1.6.0_31和JavaF某2.0SDK到192.168.1.82(用户名:adminitrator密码:111111)中的bak目录下拷贝,如下图所示。

一切采用默认下去就可以了。

注意:没有安装IDE的安装IDE(bak目录有,任何版本都行)。

JavaF某2.0需要JDK1.6以上。

2Swing中嵌入JavaF某应用开发2.1创建java应用程序工程选择“文件”------>“新建项目”,选择点下一步。

项目名称命名为“JavaF某EmbedInSwing”,指定“项目位置选”,创建主类“con.javaf某.in.wing.JavaF某EmbedInSwing”,点击完成。

初始的项目如下图。

2.2导入JavaF某库文件包在项目目录下建一个名称为“lib”的子目录。

然后把“JavaF某2.0SDK”安装目录下(我安装到了“C:\\ProgramFile\\JavaF某\\javaf某-dk2.1”下)的“rt”子目录中的“bin”和lib复制到刚刚创建的“lib”目录下。

项目目录:JavaF某2.0SDK目录:然后再项目树下的“库”上右键,选择“添加JAR/文件夹”。

从文件选择器中选择,刚刚复制到“lib”下的两个文件夹中的“lib”文件夹中的“jf某rt.jar”。

点击“打开”。

完成后,“库”下多了一个子节点“jf某rt.jar”,JavaF某库文件导入完毕。

如下图所示:2.3创建主窗体Java应用程序中,“publictaticvoidmain(String[]arg)”是指定的启动接口。

也就是是说java应用程序启动时首先走main方法。

在main方法中创建JFrame这个Swing的顶层容器用来存放各种Swing组件,代码如下:运行效果为:2.4创建JF某Panel并将其加入到Swing窗口中创建完JF某Panel,设置JF某Panel的内容的时侯,由于其使用的是JavaF某应用程序线程(即:“JavaF某applicationthread”)创建的,需要调用javaf某.application.Platform.runLater(Runnabler)方法,来协调其与Swing和AWT事件分发线(即:SwingandAWTEventDipatchThread(EDT))程,避免冲突。

在嵌入式开发中使用Java

在嵌入式开发中使用Java

在嵌入式开发中使用Java在嵌入式开发领域,使用Java作为主要语言的趋势日益增长。

随着技术的进步和硬件的发展,Java已经成为一种广泛使用的平台,可用于嵌入式系统的开发。

本文将探讨在嵌入式开发中使用Java的优势、应用领域以及相关技术。

一、嵌入式开发中使用Java的优势1. 跨平台性:Java是一种跨平台的编程语言,嵌入式设备通常涉及不同的硬件和操作系统。

使用Java可以大大简化开发过程,使得代码可以在不同的平台上运行。

2. 丰富的类库:Java提供了大量的类库和API,这些类库包含了各种功能和工具,能够帮助开发人员快速完成任务。

在嵌入式开发中,使用Java的类库可以减少开发时间和复杂性。

3. 良好的可维护性:Java是一种结构化的、面向对象的编程语言,具有良好的可维护性。

开发人员可以使用Java中的封装、继承和多态等概念来组织和管理代码,使得代码更易于理解和修改。

4. 强大的安全性:Java具有丰富的安全性特性,对于嵌入式设备来说尤为重要。

在嵌入式系统中,安全性往往是一个关键问题,Java的安全特性可以有效地保护设备免受恶意攻击和数据泄露的威胁。

二、嵌入式开发中的Java应用领域1. 智能家居:随着物联网的发展,智能家居正在成为一个热门领域。

使用Java可以方便地开发各种智能家居设备,如智能灯泡、温控系统等,实现设备之间的互联和远程控制。

2. 工业自动化:工业自动化领域需要高性能和实时性能较强的嵌入式设备。

Java提供了实时嵌入式开发的解决方案,可以满足工业自动化系统对实时性的要求,并且具有良好的可扩展性。

3. 智能交通:在智能交通领域,Java可以用于开发车载娱乐系统、导航系统和车辆控制系统等。

通过使用Java,可以实现车辆间的信息交互和大规模交通管理。

4. 医疗设备:医疗设备需要高度可靠的嵌入式系统来保证患者的生命安全。

Java提供了强大的错误处理和异常处理机制,可以快速检测和处理问题,确保嵌入式设备的可靠性。

java swing开发案例

java swing开发案例

java swing开发案例1. 计算器应用程序该应用程序使用Java Swing开发,实现了一个简单的计算器功能。

用户可以输入数字和运算符,并通过按下相应的按钮来执行计算操作。

应用程序会将计算结果显示在屏幕上,并允许用户清除当前计算或进行新的计算。

2. 学生成绩管理系统该应用程序使用Java Swing开发,可以帮助学校或老师管理学生的成绩信息。

用户可以添加新的学生、编辑学生信息、输入学生成绩,并可以通过查询功能来查找特定学生的成绩。

应用程序还可以生成成绩报告,以便用户进行分析和评估。

3. 文件浏览器这个应用程序使用Java Swing开发,模拟了一个简单的文件浏览器。

用户可以浏览计算机上的文件和文件夹,并可以通过点击相应的按钮来打开或删除文件。

应用程序还提供了搜索功能,以便用户可以快速找到所需的文件。

4. 图片编辑器这个应用程序使用Java Swing开发,可以帮助用户编辑和处理图片。

用户可以打开图片文件、调整亮度、对比度和饱和度,并可以进行裁剪、旋转和缩放操作。

应用程序还提供了一些滤镜效果,如黑白、模糊和怀旧效果。

5. 音乐播放器这个应用程序使用Java Swing开发,可以帮助用户播放本地音乐文件。

用户可以选择音乐文件并通过点击播放按钮来播放音乐。

应用程序还提供了控制音乐播放的功能,如暂停、停止和调整音量。

6. 电子邮件客户端这个应用程序使用Java Swing开发,可以帮助用户发送和接收电子邮件。

用户可以登录到他们的电子邮件账户,并可以编写和发送电子邮件。

应用程序还可以从服务器上接收新的电子邮件,并将它们显示在收件箱中。

7. 聊天应用程序这个应用程序使用Java Swing开发,可以帮助用户进行在线聊天。

用户可以登录到他们的聊天账户,并可以与其他在线用户进行实时聊天。

应用程序还提供了一些附加功能,如发送文件和创建群聊。

8. 天气预报应用程序这个应用程序使用Java Swing开发,可以帮助用户获取实时天气信息。

Java的GUI开发介绍SwingJavaFX和AWT

Java的GUI开发介绍SwingJavaFX和AWTJava的GUI开发介绍Swing、JavaFX和AWTJava作为一门跨平台的编程语言,提供了多种图形用户界面(Graphical User Interface,简称GUI)的开发框架,其中最常用的有Swing、JavaFX和AWT。

本文将介绍这三种界面开发框架的特点和用法。

一、SwingSwing是Java提供的一套组件库,用于创建跨平台的图形用户界面。

它提供了丰富的组件,包括按钮、文本框、下拉菜单等,可以满足各种界面开发的需求。

Swing的特点如下:1. 跨平台性:Swing基于Java语言,可以轻松地在不同的平台上运行,例如Windows、Mac和Linux等。

2. 可定制性:Swing的组件可以通过设置属性、添加事件监听器等方式进行灵活的定制,以满足个性化的界面需求。

3. 容易学习和使用:Swing采用了面向对象的设计思路,提供了一套简单易懂的API,使得开发者可以快速上手,进行GUI的开发。

二、JavaFXJavaFX是Oracle公司在Java SE 8中引入的新一代界面开发工具。

它是一种富客户端平台,提供了丰富的可视化界面组件和多媒体支持。

JavaFX的特点如下:1. 设计美观:JavaFX支持CSS样式,可以轻松实现漂亮的界面设计,让用户体验更加友好。

2. 多媒体支持:JavaFX内置了对音频、视频等多媒体资源的支持,使得开发者可以在界面中嵌入丰富的多媒体内容。

3. 高性能:JavaFX采用了硬件加速技术,可以提供流畅的界面体验,并具有较低的内存占用。

三、AWTAWT(Abstract Window Toolkit)是Java最早提供的GUI开发工具包,它是基于底层操作系统窗口的一种界面开发方式。

AWT的特点如下:1. 简单易用:AWT提供了一些基本的界面组件,如窗口、按钮和文本框等,使用起来非常简单。

2. 平台依赖性:AWT的界面在不同的操作系统上可能有差异,因为它是直接使用底层窗口系统的API。

Java程序设计:第八章 Swing图形界面程序设计


原型 public FlowLayout(int align )
描述
FlowLayerout布局时,组件在容器以从左到右,从 上到下的方式排列。 align用于指定行对齐方式, FlowLayout.LEFT表示左 对齐,相应的有右对齐和居中对齐。
java.awt.Container的成员JLabel(2)
JFrame的成员方法
原型
public JFrame( ) public JFrame(String title) public void setDefaultCloseOperation( int operation) public void setSize(int width, int height) public void setVisible(boolean b) public Container getContentPane()
描述 构造一个无标题不可见的框架 构造一个标题为title的框架 设置当关闭框架时的操作,例如operation为 JFrame.EXIT_ON_CLOSE时表示退出程序
设置框架的大小
设置框架是否可见 返回当前框架的内容窗格
7
组件和容器 -JFrame和JLabel(3)
FlowLayout布局的成员方法:
4
组件和容器(3)
一般容器包括: 面板JPanel,滚动窗格JScrollPane,选项卡 窗格JTabbedPane和工具栏JToolBar。
专用容器包括:内部框架(JInternalFrame),分层窗格 (JLayedPane)、根窗格(JRootPane)、玻璃窗格(GlassPane )、内 容窗格(ContentPane)。
描述 构造一个父窗口为owner,标题为title,模式为 modal的对话框。Modal为true表示有模式,为false 表示无模式 设置对话框的大小

深入浅出java swing程序设计-概述说明以及解释

深入浅出java swing程序设计-概述说明以及解释1.引言1.1 概述Java Swing是一种用于构建图形用户界面(Graphical User Interface,简称GUI)的Java库。

它为开发人员提供了丰富的组件和布局管理器,可以轻松创建具有各种功能和样式的交互式应用程序。

Java Swing的出现填补了Java原生GUI工具包的不足,为开发人员提供了更多的自定义和灵活性。

与AWT(Abstract Window Toolkit)相比,Swing提供了更多的组件和界面控件,同时具备更好的跨平台性。

Java Swing不仅仅是一个图形用户界面库,它还提供了一整套用于处理用户输入、图形绘制、多媒体展示等功能的类和工具。

开发人员可以利用这些工具快速构建具有丰富交互性的应用程序。

本文将深入浅出地介绍Java Swing程序设计的基本概念和技巧。

我们将从Swing的组件和布局开始,逐步展示如何创建简单且功能强大的用户界面。

通过学习本文,读者将能够掌握Java Swing的核心知识,并能够利用这些知识开发出符合自己需求的应用程序。

本文的目的是帮助读者快速上手Java Swing,了解其基本概念和使用方法。

同时,我们也将展望Java Swing的未来发展,探讨其在现代应用程序开发中的重要性和应用前景。

在接下来的正文部分,我们将详细介绍Java Swing的基本概念,包括组件、事件、布局等内容。

同时,我们还将给出一些实际的例子,以便读者更好地理解和应用所学知识。

总之,本文将从大纲所列的各个方面对Java Swing进行深入浅出的探讨,旨在帮助读者全面了解和掌握Java Swing程序设计的基本技巧和应用方法。

希望读者能够通过本文的学习,具备自主开发Java Swing应用程序的能力,并能在实际项目中灵活应用所学知识。

1.2 文章结构本文主要以深入浅出的方式介绍Java Swing程序设计。

文章分为引言、正文和结论三个部分,每个部分有相应的小节。

java_swing面试题目(3篇)

第1篇一、Java Swing基本概念1. 什么是Java Swing?答:Java Swing是一种用于创建图形用户界面的库,它是Java语言的一个扩展,允许开发者创建具有丰富视觉效果的桌面应用程序。

2. Swing的组件有哪些?答:Swing组件包括基本组件(如按钮、标签、文本框等)、容器组件(如面板、窗口、滚动条等)、特殊组件(如树、表格等)。

3. Swing与AWT的区别是什么?答:Swing是基于Java的,而AWT是基于本地平台的。

Swing组件在不同平台上表现一致,而AWT组件在不同平台上可能有所不同。

Swing运行速度较慢,但提供了更多功能和更好的用户体验。

二、Swing基本组件1. 如何创建一个按钮,并设置其文本和字体?答:使用JButton类创建按钮,并设置其文本和字体。

```javaJButton button = new JButton("按钮");button.setFont(new Font("宋体", Font.PLAIN, 12));```2. 如何获取并设置文本框中的文本?答:使用JTextField类创建文本框,并通过getText()和setText()方法获取和设置文本。

```javaJTextField textField = new JTextField();String text = textField.getText(); // 获取文本textField.setText("新文本"); // 设置文本```3. 如何使用单选按钮(JRadioButton)实现多选?答:使用JRadioButton类创建单选按钮,并使用ButtonGroup类将它们分组。

```javaJRadioButton radioButton1 = new JRadioButton("选项1");JRadioButton radioButton2 = new JRadioButton("选项2");ButtonGroup buttonGroup = new ButtonGroup();buttonGroup.add(radioButton1);buttonGroup.add(radioButton2);```4. 如何使用复选框(JCheckBox)实现多选?答:使用JCheckBox类创建复选框,它们之间互不影响。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

import java.awt.BorderLayout;import java.awt.Toolkit;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.RandomAccessFile;import .HttpURLConnection;import .URL;import java.util.ArrayList;import java.util.Arrays;import java.util.Date;import java.util.List;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.SwingUtilities;import mon.UIUtils;import chrriis.dj.nativeswing.swtimpl.NativeInterface;import ponents.JWebBrowser;import ponents.WebBrowserCommandEvent; import ponents.WebBrowserEvent;import ponents.WebBrowserListener;import ponents.WebBrowserNavigationEvent; import ponents.WebBrowserWindowOpeningEvent; import ponents.WebBrowserWindowWillOpenEvent;import com.jacob.activeX.ActiveXComponent;import Thread;import .Dispatch;import .Variant;import com.mohe.utils.system.L;/*** 主窗体** @author dxm**/public class MainFrame extends JFrame {private static final long serialVersionUID = -6348199501339114346L;// 最后操作时间public long lastTime = new Date().getTime();// 浏览器窗体private JWebBrowser webBrowser = null;private JLabel lbl = null;private JPanel panel = null;public int pageFlag = 1;/*** 构造器*/public MainFrame() {initData();initGUI();addListance();}private void initData() {Toolkit toolkit = Toolkit.getDefaultToolkit();this.setUndecorated(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setSize(600, 500);this.setLocationRelativeTo(null);this.setSize(toolkit.getScreenSize());this.setLocation(0, 0);webBrowser = new JWebBrowser();webBrowser.navigate(Config.local + Config.index);webBrowser.setBarsVisible(false);webBrowser.setMenuBarVisible(false);webBrowser.setLocationBarVisible(false);webBrowser.setButtonBarVisible(false);webBrowser.setStatusBarVisible(false);ImageIcon icon = new ImageIcon(System.getProperty("user.dir") + "\\城市.gif");File img = new File(System.getProperty("user.dir") + "\\" + Config.img);if (img.exists()) {icon = new ImageIcon(img.getAbsolutePath());}lbl = new JLabel(icon);panel = new JPanel(new BorderLayout());}private void initGUI() {panel.add(webBrowser, BorderLayout.CENTER);this.setContentPane(panel);}private void addListance() {webBrowser.addWebBrowserListener(new WebBrowserListener() {@Overridepublic void windowWillOpen(WebBrowserWindowWillOpenEvent arg0) { lastTime = new Date().getTime();("___________ windowWillOpen");}@Overridepublic void windowOpening(WebBrowserWindowOpeningEvent arg0) { lastTime = new Date().getTime();("___________ windowOpening");}@Overridepublic void windowClosing(WebBrowserEvent arg0) {lastTime = new Date().getTime();("___________ windowClosing");}@Overridepublic void titleChanged(WebBrowserEvent arg0) {lastTime = new Date().getTime();("___________ titleChanged");}@Overridepublic void statusChanged(WebBrowserEvent arg0) {lastTime = new Date().getTime();("___________ statusChanged");}@Overridepublic void locationChanging(WebBrowserNavigationEvent arg0) {lastTime = new Date().getTime();("___________ locationChanging");}@Overridepublic void locationChanged(WebBrowserNavigationEvent arg0) {lastTime = new Date().getTime();("___________ locationChanged");// 判断当前页面等级String locationURL = arg0.getNewResourceLocation();int index = locationURL.indexOf("pageFlag=");if (index != -1) {pageFlag = Integer.parseInt(locationURL.substring(index + 9, index + 10));} else {pageFlag = 1;}System.out.println("____________________ pageFlag:" + pageFlag);// 判断下载文件进行打印index = locationURL.indexOf("fileName=");System.out.println("____________________ file Index:" + index);if (index != -1) {String fs = locationURL.substring(index + 9);("______________________ fileName = " + fs);String[] fns = fs.split(",");try {List<File> flist = downNetFile(Arrays.asList(fns));doPrintDoc(flist);} catch (IOException e) {e.printStackTrace();}}SwingUtilities.invokeLater(new Runnable() {public void run() {webBrowser.setVisible(false);webBrowser.setVisible(true);webBrowser.updateUI();webBrowser.repaint();panel.updateUI();panel.repaint();panel.validate();}});}@Overridepublic void locationChangeCanceled(WebBrowserNavigationEvent arg0) { lastTime = new Date().getTime();("___________ locationChangeCanceled");}@Overridepublic void loadingProgressChanged(WebBrowserEvent arg0) {lastTime = new Date().getTime();("___________ loadingProgressChanged");}@Overridepublic void commandReceived(WebBrowserCommandEvent arg0) { lastTime = new Date().getTime();("___________ commandReceived");}});lbl.addMouseListener(new MouseListener() {@Overridepublic void mouseReleased(MouseEvent arg0) {}@Overridepublic void mousePressed(MouseEvent arg0) {}@Overridepublic void mouseExited(MouseEvent arg0) {}@Overridepublic void mouseEntered(MouseEvent arg0) {}@Overridepublic void mouseClicked(MouseEvent arg0) {change(2);}});}/*** 屏保切换*/public void change(final int type) {lastTime = new Date().getTime();SwingUtilities.invokeLater(new Runnable() {public void run() {if (type == 1) {// 二级,三级页面跳首页if (pageFlag == 2 || pageFlag == 3) {webBrowser.navigate(Config.local + Config.index);}// else {// webBrowser.setVisible(false);// panel.add(lbl, BorderLayout.CENTER);// }} else {panel.remove(lbl);webBrowser.setVisible(true);}panel.validate();}});}/*** 下载网络文件** @param nameList* @throws IOException*/private List<File> downNetFile(List<String> nameList) throws IOException {("________________________ downNetFile1");if (null == nameList || nameList.isEmpty()) {return new ArrayList<File>();}List<File> flist = new ArrayList<File>();for (String name : nameList) {("________________________ downNetFile2");URL url = new URL(Config.local + "/excel/" + name);HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();// 设置请求信息httpConnection.setRequestProperty("GET", "/down.zip HTTP/1.1");// 设置接受信息httpConnection.setRequestProperty("Accept","image/gif,image/x-xbitmap,application/msword");// 设置连接信息httpConnection.setRequestProperty("Connection", "Keep-Alive");// 获得输入流InputStream input = httpConnection.getInputStream();// 创建随机文件flist.add(new File(name));RandomAccessFile oSavedFile = new RandomAccessFile(name, "rw");byte[] b = new byte[1024];int nRead;// 从输入流中读入字节流,然后写到文件中while ((nRead = input.read(b, 0, 1024)) > 0) {oSavedFile.write(b, 0, nRead);}input.close();oSavedFile.close();httpConnection.disconnect();}return flist;}private void doPrintDoc(List<File> fileList) {if (null == fileList || fileList.isEmpty()) {return;}// 初始化组件ComThread.InitSTA();("___________________ start Print 1");for (File file : fileList) {if (file == null || !file.exists()) {return;}("___________________ start Print 2 :" + file.getAbsolutePath());int index = file.getName().indexOf(".");String extName = file.getName().toUpperCase().substring(index + 1);String comApp = "Word.Application";String property = "Documents";if (extName.equals("DOC") || extName.equals("DOCX") || extName.equals("WPS")) {comApp = "Word.Application";property = "Documents";} else if (extName.equals("XLS") || extName.equals("XLSX") || extName.equals("ET")) {comApp = "Excel.Application";property = "Workbooks";} else if (extName.equals("PPT") || extName.equals("PPTX") ||extName.equals("DPS")) {comApp = "PowerPoint.Application";property = "Presentations";}("___________________ start Print 3 :" + comApp);ActiveXComponent axc = new ActiveXComponent(comApp);try {if (!property.equals("Presentations")) {Dispatch.put(axc, "Visible", new Variant(false));}Dispatch document = axc.getProperty(property).toDispatch();Dispatch doc = null;if (property.equals("Presentations")) {doc = Dispatch.call(document, "Open", file.getAbsolutePath(), true, true, false).toDispatch();} else {doc = Dispatch.invoke(document, "Open", Dispatch.Method, new Object[] { file.getAbsolutePath() }, new int[1]).toDispatch();}("___________________ start Print 3 :" + file.getAbsolutePath());Dispatch.call(doc, "PrintOut");Dispatch.call(doc, "Close");if (!property.equals("Presentations")) {axc.invoke("Quit", new Variant[] {});}} catch (Exception e) {e.printStackTrace();} finally {comApp = "";property = "";}}ComThread.Release();}public static void main(String[] args) {L.APPNAME = "Street_cs";L.LOGF = true;L.initLog();UIUtils.setPreferredLookAndFeel();NativeInterface.open();SwingUtilities.invokeLater(new Runnable() {public void run() {MainFrame frame = new MainFrame();frame.setVisible(true);new ChangeWait(frame).tryStart();new ServeSocket();}});NativeInterface.runEventPump();}}。

相关文档
最新文档