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和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图形界面程序设计

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程序设计-概述说明以及解释

深入浅出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篇)

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类创建复选框,它们之间互不影响。

第9章Java Swing图形用户界面-Java面向对象程序设计教程-微课视频-程杰-清华大学出版社

第9章Java Swing图形用户界面-Java面向对象程序设计教程-微课视频-程杰-清华大学出版社
第9章Java Swing图形用户界面
9.1 Java Swing概述 9.2 JFrame窗口 9.3布局管理器 9.4 常用控件 9.5事件处理机制 9.6 JDialog对话框 9.7 应用实例:打地鼠小游戏
通过GUI(Graphic User Interface,图形用户界 面),用户与程序之间可以方便地进行交互。Java 的java.awt包,即Java抽象窗口工具包(Abstract Window Toolkit,AWT)提供了许多用来设计GUI 的组件类。Java早起进行用户界面设计时,主要使 用java.awt包提供的类,如Button(按钮)、 TextField(文本框)和List(列表)等。JDK1.2 推出后,增加了一个新的javax.swing包,该包提 供了功能更为强大的用来设计GUI的类。
Javax.swing包提供了Box类,该类也是Container
类的一个子类,创建的容器称为一个盒式容器,盒 式容器的默认布局是盒式布局,而且不允许更改盒 式容器的布局。因此,在策划程序的布局时,可以 利用容器的嵌套,将摸个容器嵌入几个盒式ng中提供了一个更加强大的布 局——弹簧布局SpringLayout。利用该布局管理器
管理组件,当改变窗体的大小时,能够在不改变组 件间相对位置的前提下自动调整组件的大小。
9.4.1 标签JLable 9.4.2 文本框JTextField 9.4.3 按钮JButton 9.4.4 菜单JMenu 9.4.5文本区JTextArea 9.4.6下拉列表JList 9.4.7表格JTable 9.4.8 树JTree
Public void keyTyped(KeyEvent),键盘按键被输入 事件。
无论用户界面设计的如何美观别致,最重要的一点 是知道这些组件能做什么,如单击一个“打开文件” 按钮,我们希望打开的是文件对话框,而不希望程 序没有任何响应。Java提供了事件模型,使Swing

跟我学如何应用DJ Native Swing 组件实现在Java应用程序中嵌入浏览器

跟我学如何应用DJ Native Swing 组件实现在Java应用程序中嵌入浏览器

1.1跟我学如何应用DJ Native Swing 组件实现在Java应用程序中嵌入浏览器1、应用DJ Native Swing 组件(/ns/index.html)组件可以支持Firefox浏览器2、代码示例import java.awt.BorderLayout;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.SwingUtilities;import mon.UIUtils;import chrriis.dj.nativeswing.swtimpl.NativeInterface;import ponents.JWebBrowser;public class EagleBrowser extends JPanel {private JPanel webBrowserPanel;private JWebBrowser webBrowser;private String url;public EagleBrowser(String url) {super(new BorderLayout());this.url = url;webBrowserPanel = new JPanel(new BorderLayout());webBrowser = new JWebBrowser();webBrowser.navigate(url);webBrowser.setButtonBarVisible(false);webBrowser.setMenuBarVisible(false);webBrowser.setBarsVisible(false);webBrowser.setStatusBarVisible(false);webBrowserPanel.add(webBrowser, BorderLayout.CENTER);add(webBrowserPanel, BorderLayout.CENTER);}public static void main(String[] args) {final String url = "http://";final String title = "电信营业厅缴费终端";UIUtils.setPreferredLookAndFeel();NativeInterface.open();SwingUtilities.invokeLater(new Runnable() {public void run() {JFrame frame = new JFrame(title);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().add(new EagleBrowser(url), BorderLayout.CENTER);frame.setExtendedState(JFrame.MAXIMIZED_BOTH);frame.setLocationByPlatform(true);//frame.setUndecorated(true);frame.setVisible(true);}});NativeInterface.runEventPump();}}3、主要的组件及功能(1)JWebBrowser1)Simple Example: This is a simple example that shows the basic configuration of anembedded web browser component.2)Setting Content: Set any HTML content to the web browser.3)Javascript Execution: Execute some Javascript code in the current web browser page.4)Navigation Control: Control the navigation happening in the web browser from the Javaapplication.5)This allows to block certain links and/or the creation of new windows, or to open linksand/or new windows elsewhere.6)Sending Commands: Use static links or simple Javascript to send some commands witharguments to the application:function sendCommand(command) {var s = &apos;command://&apos; + encodeURIComponent(command);for(var i=1; i<arguments.length; s+=&apos;&&apos;+encodeURIComponent(arguments[i++]));window.location = s;}1)Cookies: Access and modify the cookies set by the various browser instances.2)Classpath pages: Load web pages from the classpath with the help of the embedded simpleweb server.3)Mozilla XPCOM Page Edition: Toggle edition mode of a web page by accessing theMozilla interfaces using XPCOM.4)Mozilla XPCOM Download Manager: Modify the browser&apos;s download managerusing Mozilla XPCOM.(2)JFlashPlayer1)Simple Example: Display a Flash application.2)Variables and Flow: Control the flow of a Flash animation, and get/set global variables.3)Function Calls: Invoke functions, with or without waiting for a result, and listen to Flashcommands.(3)JVLCPlayerSimple Example: Load a movie/sound file to an embedded VLC player.(4)JHTMLEditor1)Simple Example: Graphically edit some HTML, get and set the HTML content.2)Custom Configuration: Modify default behaviors with custom configuration script.3)TinyMCE implementation: Use the TinyMCE editor implementation instead of the defaultFCKeditor.(5)JSyntaxHighlighterSimple Example: Display some content with syntax highlighting from one of the available languages (C++, C#, css, Delphi, Java, JS, PHP, Python, Ruby, SQL, VB, XML, HTML).(6)JWMediaPlayer (win32)Simple Example: Load a movie/sound file to an embedded multimedia player.(7)Additional Features1)Constrain Visibility: Constrain the visibility to superimpose Swing and native components.2)Deferred Destruction: Defer destruction until finalization to add/remove the samecomponent.It is not destroyed when removed but on disposeNativePeer() or garbage collection.3)Hierarchy Proxying: Use a proxied component hierarchy for the native components toallow re-parenting and change of component Z-order.4)Thumbnail Creation: Create a thumbnail by painting a native component to an image.5)Pseudo Transparency: Simulate alpha blending of a Swing component over a nativecomponent. This works rather well over static content.6)Component Life Cycle: Present the life cycle of a component and when method callshappen.Also highlight how runInSequence(Runnable) can be useful, and for special needs how to use initializeNativePeer().(8)Utilities File AssociationsGet the file type associations, and use them to launch files.4、运行示例(1)java –jar DJNativeSwing-SWTDemo.jar(2)结果示图。

swing组件及其用法

swing组件及其用法

swing组件及其用法Swing组件是用于创建图形用户界面的Java库。

它提供了丰富的界面元素和布局管理器,可以实现各种图形界面应用程序。

下面是一些常用的Swing组件及其用法:1. JFrame:顶层窗口组件,用于创建一个窗口。

用法示例:```javaJFrame frame = new JFrame("My Frame");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(500, 300);frame.setVisible(true);```2. JPanel:容器组件,用于组织其他组件。

用法示例:```javaJPanel panel = new JPanel();panel.setLayout(new FlowLayout());panel.add(new JButton("Button 1"));panel.add(new JButton("Button 2"));```3. JButton:按钮组件,用于触发动作。

用法示例:```javaJButton button = new JButton("Click me");button.addActionListener(e -> System.out.println("Buttonclicked"));```4. JLabel:标签组件,用于显示文本或图像。

用法示例:```javaJLabel label = new JLabel("Hello, world!");label.setIcon(new ImageIcon("image.png"));```5. JTextField:文本输入框组件,用于接收用户输入。

JavaSwing使用总结(转载)

JavaSwing使用总结(转载)

JavaSwing使⽤总结(转载)随笔转载⾃:地址:1. GUI编程引⾔以前的学习当中,我们都使⽤的是命令交互⽅式: 例如:在DOS命令⾏中通过javac java命令启动程序.软件的交互的⽅式: 1. 命令交互⽅式 图书管理系统 2. 图形交互⽅式 ava提供了专业的API⽤于开发图形⽤户界⾯ GUI--> Graphic User Interface 将要了解GUI API的框架结构,以及GUI组件以及组件之间的关系,容器和布局管理器,颜⾊,字体等.2. GUI的分类2.1. AWT Java1.0版本的图形⽤户界⾯库,设计⽬标是帮助程序员编写在所有平台上都能良好表现的GUI程序。

为了实现这个⽬标Java1.0提供了抽象窗⼝⼯具集(AWT),但是这个⽬标并没有达到。

AWT在所有的系统上表现都不好。

因为:最初版本的AWT是在⼀个⽉内构思,设计和实现的(Think in Java )。

Abstract Window Toolkit 抽象窗⼝⼯具集 Java将图形⽤户界⾯相关的类捆绑在了⼀起,放在了⼀个称之为抽象窗⼝⼯具集的库中.AWT适合开发简单的图形⽤户界⾯,并不适合开发复杂的GUI项⽬. 位于: java.awt.* 中,定义了很多的组件类,开发者可以直接创建对象加以使⽤ 缺点: 所有的图形界⾯都依赖于底层的操作系统,容易发⽣于特定平台相关的故障. AWT调⽤本地系统资源⽣成图形化界⾯, 依赖本地平台. 1.02.2. SwingSUN公司对AWT进⾏了升级,基于AWT,推出了⼀种更稳定,更通⽤和更灵活的库.称之为Swing组件库(Swing component)。

既然都是⽤于GUI设计的组件库,那么为了区分Swing组件类和对应的AWT组件类,Swing组件类都已字母J为前缀.位于:javax.swing.* 中,提供了和AWT中等同的所有的组件类,但是类名的前⾯多加了⼀个J.SWING可以跨平台. 1.2我们主要学习Swing GUI组件.3. Java GUI APIGUI API包含的类分为三个部分:组件类(component class) 容器类(container class),和辅助类(helper class)1. 组件类是⽤来创建⽤户图形界⾯的,例如JButton,JLabel,JTextField.2. 容器类是⽤来包含其他组件的,例如JFrame,JPanel3. 辅助类是⽤来⽀持GUI组件的,例如Color,Font3.1. 组件类在图形⽤户界⾯程序中当我们想要创建按钮、复选框和滚动条等这些可以显⽰在屏幕上的对象,该如何创建。

Java Swing教程

Java Swing教程

Java Swing 编程基础与进阶/art/201201/313153.htm1、概述Swing中的JApplet和JFrame/art/200907/136486.htm本文介绍JApplet和JFrame都是只包含一个组件的容器,这个组件是JRootPane的一个实例,所以JApplet和JFrame之间是互相通用的。

这几天,闲时看了一下Swing。

Swing常用的两个类,一个是JFrame窗体类,一个是JApplet小应用程序类。

其中JApplet 依赖浏览器来执行。

很多浏览器都可以支持JApplet,包括了IE,Firefox等。

不过如何用IE6来执行的话,IE6会有脚本警告。

JApplet和JFrame都是只包含一个组件的容器,这个组件是JRootPane的一个实例。

所以JApplet和JFrame之间是互相通用的。

如以下代码:package com.tntxia.test.swing.jApplet;import java.awt.BorderLayout;import java.awt.Container;import java.awt.FlowLayout;import javax.swing.ImageIcon;import javax.swing.JApplet;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.SwingConstants;public class HelloWorld extends JApplet {/****/private static final long serialVersionUID = 52493594634447013L;public void init() {Container contentPane = getContentPane();//原文如不修改,不能正常显示图标//修改后--------.URL codebase=getClass().getResource("loli.jpg");JLabel label = new JLabel(new ImageIcon(codebase));//----------修改后的程序有个毛病,既作为applet使用时,不能刷新,一旦刷新图就没了。

java语言中awt和swing组件的基本用法

java语言中awt和swing组件的基本用法

java语言中awt和swing组件的基本用法AWT (Abstract Window Toolkit)是Java编程语言的一套图形用户界面(GUI)组件集,它提供了创建和管理窗口、按钮、标签等图形组件的能力。

AWT组件是依赖于操作系统的本地GUI组件。

下面是使用AWT组件的基本步骤:1.导入AWT相关的类:通常在使用AWT组件之前,需要导入`java.awt`和`java.awt.event`包中的类。

2.创建一个Frame:使用`Frame`类来创建一个顶级窗口。

3.创建其他组件:使用AWT提供的组件类(如`Button`、`Label`等)来创建其他需要的组件。

4.将组件添加到Frame:使用`add()`方法将其他组件添加到Frame中。

5.设置Frame的布局:使用`setLayout()`方法设置Frame的布局方式,如`FlowLayout`、`GridLayout`等。

6.设置Frame的大小和可见性:使用`setSize()`方法设置Frame 的大小,使用`setVisible(true)`方法设置Frame可见。

7.添加事件监听器:使用`addActionListener()`方法为按钮等组件添加事件监听器。

Swing是Java编程语言中提供的一组GUI组件,它是在AWT的基础上进行了增强和扩展。

Swing组件是纯Java组件,不依赖于操作系统的本地组件,因此具有更高的可移植性和灵活性。

下面是使用Swing组件的基本步骤:1.导入Swing相关的类:通常在使用Swing组件之前,需要导入`javax.swing`包中的类。

2.创建一个JFrame:使用`JFrame`类来创建一个顶级窗口。

3.创建其他组件:使用Swing提供的组件类(如`JButton`、`JLabel`等)来创建其他需要的组件。

4.将组件添加到JFrame中:使用`add()`方法将其他组件添加到JFrame中。

Swing程序嵌入Html

Swing程序嵌入Html

Swing程序嵌入Html/Jsp页面(转)对于一个Swing写的应用程序,在很多的工程中,是需要嵌入到页面的。

这样不仅增加了交互性和界面可操作性,而且让程序更加人性化。

而以往的界面嵌入,大多是以Applet为主的。

但是对于Swing为主的程序,sun 公司仍然是提供解决方案的。

原理:页面代码:<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"width="400" height="300" align="baseline"codebase="/products/plugin/1.4/jinstall-14-win 32.cab#Version=1,4,0,mn"><PARAM NAME="code" VALUE="Example.class"><PARAM NAME="codebase" VALUE="\"><PARAM NAME="type"VALUE="application/x-java-applet;jpi-version=1.4"><PARAM NAME="model" VALUE="models/HyaluronicAcid.xyz"><PARAM NAME="scriptable" VALUE="true"><COMMENT><EMBED type="application/x-java-applet;jpi-version=1.4"width="400"height="300" align="baseline" code="Example.class" codebase="\" model="models/HyaluronicAcid.xyz"pluginspage="/j2se/1.4/download.html"><NOEMBED>No Java 2 SDK, Standard Edition v 1.4 support for APPLET!!</NOEMBED></EMBED></COMMENT></OBJECT>解释:<OBJECT>是IE浏览器推荐用来嵌入Applet的标签。

java中swing的用法

java中swing的用法

java中swing的用法Swing是Java中的一种GUI(图形用户界面)工具包,它是基于AWT(抽象窗口工具箱)开发的。

和AWT不同的是,Swing使用了Java 2D API来实现自己的用户界面元素,这使得Swing的外观和感觉更加现代化,更加灵活。

2. Swing的优点Swing的优点主要有以下几点:- 跨平台性:Swing是基于Java开发的,因此可以在任何支持Java的平台上运行,如Windows、Linux、Unix等。

- 灵活性:Swing提供了丰富的组件,开发者可以通过组合不同的组件来创建非常复杂的用户界面。

- 动态性:Swing提供了一些动画和效果来增强用户体验。

- 可定制性:Swing的外观和感觉可以通过使用不同的Look and Feel来改变,而这些Look and Feel可以在运行时动态地切换。

- 易学易用:Swing的API设计合理,很容易学习和使用。

3. Swing的组件Swing提供了很多组件,下面列举了一些常用的组件:- JLabel:标签组件,用于显示文本或图像。

- JButton:按钮组件,用于触发事件。

- JTextField:文本框组件,用于输入文本。

- JPasswordField:密码框组件,用于输入密码。

- JTextArea:文本域组件,用于显示多行文本。

- JList:列表组件,用于显示列表数据。

- JTable:表格组件,用于显示表格数据。

- JComboBox:下拉列表组件,用于选择一个选项。

- JCheckBox:复选框组件,用于选择多个选项中的一个或多个。

- JRadioButton:单选按钮组件,用于选择一个选项。

4. Swing的布局管理器在Swing中,布局管理器用于控制组件的排列。

Swing提供了多种布局管理器,下面列举了一些常用的布局管理器:- BorderLayout:边框布局管理器,将容器分成5个区域:北、南、东、西、中。

jcef 使用手册

jcef 使用手册

jcef 使用手册首先,感谢您选择使用 JCEF(Java Chromium Embedded Framework)!JCEF 是一个强大的框架,能够在 Java 应用程序中实现嵌入式 Chromium 浏览器。

本手册将为您提供详细的 JCEF 使用指南,帮助您快速上手。

一、安装和配置 JCEF1. 下载 JCEF首先,您需要从官方网站下载 JCEF 的最新版本。

请确保您选择与您的操作系统相匹配的版本。

2. 安装 JCEF下载完成后,解压文件并将JCEF 文件夹放置在您的项目目录下。

3. 配置依赖项在您的项目中,将 JCEF 添加为依赖项。

具体操作请参考您所使用的构建工具的文档。

二、创建 JCEF 应用程序1. 创建浏览器对象在您的 Java 代码中,首先创建一个 CefApp 对象来初始化 JCEF浏览器引擎。

您可以通过调用 CefApp.getInstance() 方法来实现。

2. 创建浏览器窗口接下来,您可以创建一个 CefFrame 对象,并使用它来创建一个浏览器窗口。

通过调用 CefBrowser.create() 方法,您可以将 CefFrame 对象与 CefBrowser 对象关联起来。

3. 加载 URL使用CefBrowser.loadURL() 方法,您可以加载您所需显示的网页。

指定一个字符串参数作为 URL。

4. 显示浏览器窗口通过调用 CefBrowserFrame.show() 方法,您可以将浏览器窗口显示在您的应用程序界面上。

三、处理浏览器事件1. 监听浏览器事件您可以通过实现 CefLifeSpanHandler、CefDisplayHandler 和CefRequestHandler 等接口来监听和处理浏览器事件。

例如,您可以通过实现 CefLifeSpanHandler.onBeforeClose() 方法来处理浏览器关闭事件。

2. 注册事件监听器在您的Java 代码中,使用CefClient 对象注册您所需监听的事件。

  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();}}。

相关文档
最新文档