利用java实现浏览器功能

利用java实现浏览器功能
利用java实现浏览器功能

利用java实现浏览器功能

标签:浏览器javaimportwebbrowsertemplatescomponents 2007-10-09 09:37 1297人阅读评论(0) 收藏举报版权声明:本文为博主原创文章,未经博主允许不得转载。使用VC,VB或者C#的开发者们对于在程序里面嵌入一个网页来说,那真是小事一桩。但是在JAVA 里面,却几乎是不可能实现的任务。JEditorPane虽然说可以打开网页,但是它那解析速度以及解析质量,对于今天日益复杂的网页内容来说,就像没有一样。今天我们就使用一个开源的组件(jdic)来实现在JAVA程序里面嵌入网页的效率。

下面言归正转吧,我们来介绍一下这个开源的组件,它的名字叫JDIC(JDesktop Integration Components),网址为:https://https://www.360docs.net/doc/8816760806.html,/,它提供了一种访问桌面组件的API,其中JDK6.0就采纳了其中了一些,比如系统栏图标的SystemTray 和SystemIcon,还有代表桌面的Desktop等等,可见这个API是挺不错的。由于网页浏览器的特殊性,

标准的JDK并没有把它加入进来,但是我们一样可以下载它来使用这个功能。明显地,这个功能是用本地方法实现的,所以下载完以后,把jdic.dll放到我们的path目录中,比如system32文件夹下面,然后我们就可以使用它的功能从而增加我们的JAVA程序了。

上面的例子代码如下:

/*

* Test1.java

*

* Created on 2007-10-2, 17:29:30

*

* To change this template, choose Tools | Templates * and open the template in the editor.

*/

package test2;

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import https://www.360docs.net/doc/8816760806.html,.MalformedURLException;

import https://www.360docs.net/doc/8816760806.html,.URL;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

import org.jdesktop.jdic.browser.IWebBrowser;

import org.jdesktop.jdic.browser.WebBrowser; import org.jdesktop.jdic.browser.WebBrowserEvent;

import

org.jdesktop.jdic.browser.WebBrowserListenerAdapter;

/**

*

* @author hadeslee

*/

public class Test1 extends JPanel implements

ActionListener {

private JTextField input;

private JButton go;

private IWebBrowser web;

public Test1() {

super(new BorderLayout());

initWindow();

}

private void initWindow() {

try {

web = new WebBrowser();

web.addWebBrowserListener(new MyListener());

go = new JButton("转到");

input = new JTextField();

JPanel up = new JPanel(new BorderLayout());

up.add(input, BorderLayout.CENTER);

up.add(go, BorderLayout.EAST);

this.add(up, BorderLayout.NORTH);

this.add(web.asComponent(),

BorderLayout.CENTER);

input.addActionListener(this);

go.addActionListener(this);

} catch (Exception ex) {

Logger.getLogger(Test1.class.getName()).log(Level.SEVER

E, null, ex);

}

JFrame jf = new JFrame("JAVA浏览器");

jf.add(this, BorderLayout.CENTER);

jf.setSize(500, 300);

jf.setLocationRelativeTo(null);

jf.setVisible(true);

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void actionPerformed(ActionEvent ae) {

doOpen();

}

private void doOpen() {

try {

String text = input.getText();

if (text == null || text.equals("")) {

return;

}

if (!text.toLowerCase().startsWith("http://")) {

text = "http://" + text;

}

web.setURL(new URL(text));

} catch (MalformedURLException ex) {

Logger.getLogger(Test1.class.getName()).log(Level.SEVER

E, null, ex);

}

}

public static void main(String[] args) {

new Test1();

}

private class MyListener extends

WebBrowserListenerAdapter {

private MyListener() {}

@Override

public void documentCompleted(WebBrowserEvent

arg0) {

System.out.println("文档下载完。。。");

web.executeScript("alert('文档下载完毕!')");

// web.setContent("

Hello world!!

" +

// "点我");

// web.removeWebBrowserListener(this);

}

}

}

它比一般的别的实现好的地方就是,它可以很完全地和JAVA代码进行交互,包括浏览器事件的监听,浏览器内容的获取,以及自己调用浏览器来执行一段javasript,这些都是很强大并且很实用的功能。

怎么样,这下满足了一下我们把网页嵌入到JAVA程序中的愿望了吧。

javamath类常用方法

例如求平方根的(n),求a的b次方(a, b),求绝对值(n)等很多。下面是一些演示。publicclassMathTest { publicstaticvoidmain(String[]args) { intn=16; ? 3)); ? ? } } publicclassMathDemo{ publicstaticvoidmain(Stringargs[]){ /** *abs求绝对值 */ 的时候会取偶数 */ // // // // // // // // // // /** *round四舍五入,float时返回int值,double时返回long值 */ //10 //11 //11 //11 //-10 //-11 //-11 //-10 } }

函数(方法) 描述 IEEEremainder(double,double) 按照IEEE754标准的规定,对两个参数进行余数运算。 abs(inta) 返回int值的绝对值 abs(longa) 返回long值的绝对值 abs(floata) 返回float值的绝对值 abs(doublea) 返回double值的绝对值 acos(doublea) 返回角的反余弦,范围在到pi之间 asin(doublea) 返回角的反正弦,范围在-pi/2到pi/2之间 atan(doublea) 返回角的反正切,范围在-pi/2到pi/2之间 atan2(doublea,doubleb) 将矩形坐标(x,y)转换成极坐标(r,theta) ceil(doublea) 返回最小的(最接近负无穷大)double值,该值大于或等于参数,并且等于某个整数cos(double) 返回角的三角余弦 exp(doublea) 返回欧拉数e的double次幂的值 floor(doublea) 返回最大的(最接近正无穷大)double值,该值小于或等于参数,并且等于某个整数log(doublea) 返回(底数是e)double值的自然对数 max(inta,intb) 返回两个int值中较大的一个 max(longa,longb) 返回两个long值中较大的一个 max(floata,floatb) 返回两个float值中较大的一个 max(doublea,doubleb) 返回两个double值中较大的一个 min(inta,intb) 返回两个int值中较小的一个 min(longa,longb) 返回两个long值中较小的一个 min(floata,floatb)

JAVA中常用类的常用方法

JAVA中常用类的常用方法 一、类 1、clone()方法 创建并返回此对象的一个副本。要进行“ 克隆” 的对象所属的类必须实现. Cloneable接口。 2、equals(Object obj)方法 功能:比较引用类型数据的等价性。 等价标准:引用类型比较引用,基本类型比较值。 存在特例:对File、String、Date及封装类等类型来说,是比较类型及对象的内 容而不考虑引用的是否为同一实例。 3、finalize()方法 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 4、hashCode()方法 返回该对象的哈希码值。 5、notify()方法 唤醒在此对象监视器上等待的单个线程。 6、notifyAll()方法 唤醒在此对象监视器上等待的所有线程。 7、toString()方法 返回该对象的字符串表示。在进行String与其它类型数据的连接操作时,自动调用toString()方法。可以根据需要重写toString()方法。 8、wait()方法 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。 二、字符串相关类 String类 charAt(int index) 返回指定索引处的 char 值。 compareTo(String anotherString) 按字典顺序比较两个字符串。 compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写。 concat(String str) 将指定字符串连接到此字符串的结尾。 endsWith(String suffix) 测试此字符串是否以指定的后缀结束。 equals(Object anObject) 将此字符串与指定的对象比较。 equalsIgnoreCase(String anotherString) 将此 String 与另一个 String 比 较,不考虑大小写。 indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。 indexOf(String str) 返回第一次出现的指定子字符串在此字符串中的索引。 lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引。 length() 返回此字符串的长度。 replace(char oldChar, char newChar)

Java实现打印功能

Java实现打印功能 用java实现打印,java.awt中提供了一些打印的API,要实现打印,首先要获得打印对象,然后继承Printable实现接口方法print,以便打印机进行打印,最后用用Graphics2D直接输出直接输出。 下面代码实现了简单的打印功能: import java.awt.BasicStroke; import java.awt.Color; import https://www.360docs.net/doc/8816760806.html,ponent; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Toolkit; import java.awt.RenderingHints; import java.awt.font.FontRenderContext; import java.awt.font.LineBreakMeasurer; import java.awt.font.TextAttribute; import java.awt.font.TextLayout; import java.awt.geom.Point2D; import java.awt.image.BufferedImage; import java.awt.print.Book; import java.awt.print.PageFormat; import java.awt.print.Paper; import java.awt.print.Printable; import java.awt.print.PrinterException; import java.awt.print.PrinterJob; import java.text.AttributedString; import javax.swing.JApplet; public class PrintTest implements Printable{ /** * @param Graphic指明打印的图形环境 * @param PageFormat指明打印页格式(页面大小以点为计量单位,1点为1英才的1/72,1英寸为25.4毫米。A4纸大致为595×842点) * @param pageIndex指明页号 **/

低压电器远程智能控制系统设计与实现

低压电器远程智能控制系统设计与实现 发表时间:2018-03-13T14:56:43.310Z 来源:《防护工程》2017年第31期作者:王秀丽周永涛尹环环 [导读] 当前,信息化、智能化为低压电器产品升级提供了技术支撑。 山东省产品质量检验研究院山东济南 250000 摘要:当前,信息化、智能化为低压电器产品升级提供了技术支撑。以数字化、网络化、智能化为标志的智能化低压电器制造,被认为是两化深度融合的切入点和主攻方向。 关键词:低压电器;智能化控制;设计 1.前言 在电器行业的未来发展中,低压电器的智能化技术发展是其必经之路,故而必须在低压电器的智能化技术发展的基础上,进行深入的探讨分析,进一步指出低压电器的智能化技术的发展趋势是在于同智能电网系统的匹配与建造上。 2.低压电器智能化概述 一直到现在为止,国内外的低压电器标准上都没有对低压电器智能化进行过具体的定义。可是,低压电器智能化的说法早已被低压电器的研发人员、设计人员、使用部门、工程设计人员以及制造商接受了。智能化的低压电器一般具有以下四个功能上的基本特征:(1)齐全的保护功能;(2)能够测量现实的电流参数;(3)能够记录并显示故障;(4)能够自行诊断内部的故障。 由于建筑电器的不断发展以及智能电网的不断建设,住宅配电系统的供应商越来越看重具有智能化技术功能的低压电器。曾被展出的FTB1带选择性保护的小型断路器,就是智能化低压电器的较为典型的代表,它是完全自主的知识产权的产物,又隶属于第四代的低压电器,使得我国的低压终端配电系统在选择性保护上面不再存在空白,而且它的分断能力比较高,体积又特别小,同时又具备了选择性保护以及通信功能智能化的特色,故而能够使智能楼宇与智能终端的配电回路系统的需求达到满足。除此之外,还有被研制出的VW60这一新的智能化低压框架的断路器。VW60万能式的低压断路器这一产品不仅仅体积小、断路的性能更为强大,而且具备了新颖的操作机构和现场的总线技术水平十分高的特点。由于该产品被成功地开发出来,使得智能化的低压配电同电控的成套开关设备有更好的发展,促进了配网的智能化进程。 3.低压电器与中央控制服务器之间通信协议 系统中,各系列产品通过RS-485总线连接为小型局域网,在局域网中使用Modbus通信协议是确保数据交换正确无误的条件与保证。Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,各系列产品与工控机及其他设备之间得以通信。服务器与采集控制器及各系列产品之间需要频繁地交换数据,因此本系统选择标准的Modbus网络通信的RTU(远程终端单元)模式通信。在RTU模式中,采用典型的消息,消息帧的地址域包含8bit。单个设备的地址范围是1~247。地址域对每一个设备来说是唯一的,以此来标识不同的设备,如第一个FAR6L3设备的地址域为10,第二个FAR6L3设备的地址域为11;第一个FAR6U3设备的地址域为20,第二个FAR6U3设备的地址域为21;以此类推。 消息帧中的功能代码域包含了8bit。保证每一代码的唯一性。当消息从主设备发往从设备时,功能代码域将告诉从设备需要执行哪些行为,例如读取设备的开关状态,读取从设备的状态等。当从设备回应时,使用功能代码域来指示是正常回应(无误),还是有某种错误发生(异议回应)。数据域是由两个十六进制数集合构成的,范围00~FF。对于不同的产品,数据域包含信息有所不同,比如MOT电操有电压值、欠费值、剩余电流值等工作参数,而FDQ5则不同,有常用电源A相、B相、C相电压值,备用电源也有A相、B相、C相电压值等参数。因此,为使数据域能够表示所有产品的功能参数,本系统定义的数据域集合较大,为11。 综上所述,在上述各系列产品组成的以太网中采用RS-485通信协议完成与局域网中设备之间的通信是一种适用的选择,试验证明这种通信协议在本系统中是安全、可靠的。 4.服务器数据管理与数据存储 因工控机具有高可靠性与多接口性,系统选用工控机作为服务器。工控机在本系统中具有两大作用,一为各系列产品的上位机;二为服务器。工控机端开发两套软件系统完成上述功能。 其中远程控制系统为基于B/S结构的软件系统,向本地或远程用户提供人机交互界面,用户可以通过移动终端、电脑终端、互联网终端等设备远程登录该系统。在该界面中,用户可以监控到各个低压电器的状态、实时参数等信息;同时用户可以通过界面更改其运行参数或运行状态,从而达到远程监测与遥控的目的。I/O(输入/输出)管理系统作为上位机软件管理各类数据,接收从低压电器发来的数据,并将其传递给人机交互界面,显示其运行状态等信息;同时将人机交互界面接收的远程命令通过RS-485接口发送至相应的低压电器。在服务器端软件开发中,数据管理是关键问题。在系统开发中,远程控制系统中的数据存取与I/O管理系统的数据存取均采用数据库(DB)实现。独立的数据管理机制保证了系统的可靠性和安全性。 5.试验系统的实现 以某公司的低压电器产品为从设备,以工控机(服务器)为主设备,采用了RS-485通信组建以太网,实现了远程智能控制系统。试验系统包含FAR6L3(三相自动重合闸保护器),FAR6U3(三相自复式过欠压保护器),FAR6W3(三相预付费电表断路器),FDQ5(双电源自动转换开关)及MT3(三相微型断路器电操)等上述5个系列产品系统。服务器端软件采用VisualC#2010开发环境,数据存储采用SQLServer数据库。在服务器中人机交互界面中,显示了上述5个系列产品的操作界面,其中产品FAR6W3具有两种操作模式。通过每个系列产品的操作按钮,即可进入该电器的操作界面,进入低压电器FAR6W3的操作界面,在界面中可以控制FAR6U3的A相、B相与C相电压。当电压过低时,FAR6W3便会分闸;当电压恢复时,FAR6W3便会合闸。经测试,远程智能控制系统可以监测上述5个系列产品的电压、电流信号及运行状态;远程修改其参数或运行方式。各系列产品与服务器之间信号传输实时,通过互联网远程控制上述5个系列产品的效果良好。 6.低压电器智能化存在的发展机遇 由于整个电力系统之中,低压电器被用作电网能量链之中的最底层使用范围是相当广阔的,它不仅仅对用户起着控制与保护的作用,

JAVA中常用类的常用方法

JAVA屮常用类的常用方法 一.java?丨ang.Object 类 1、clone()方法 创建丼返M此对象的一个副木。要进行“克隆”的对象所属的类必须实现https://www.360docs.net/doc/8816760806.html,ng. Cloneable 接口。 2、equals(Objectobj)方法 0 功能:比较引用类型数据的等价性。 0 等价标准.?引用类型比较引用,基木类型比较值。 0 存在特例.?对File、String、Date及封装类等类型来说,是比较类型及对象的内稃而+ 考虑引用的是否为同一实例。 3、finalize〇方法 当垃圾丨"丨收器确定>(、存在对该对象的更多引用时,由对象的垃圾丨"丨收器调用此方法。 4、hashCode〇方法返 回该对象的哈希码值。 5、notify〇方法 唤醒在此对象监视器上等待的中?个线祝。 6、notifyAII〇方法 唤醒在此对象监视器上等待的所有线程= 7、toString()方法 返W该对象的字符串表示。在进行String与其它类型数据的连接操作时,&动调用tostringo 方法。可以根据耑要重写toStringO方法。 8、wait()方法 在其他线程调用此对象的n〇tify()方法或notifyAIIO方法前,异致当前线程等待。 二、字符串相关类 I String 类 charAt(int index)返回指定索引处的char值。compareTo{String anotherString)按字

典顺序比较两个字符串。compareTolgnoreCase(Stringstr)按字典顺序比较两个字 符串,不考虑人小写。concat(String str)将指定字符串连接到此字符串的结尾。 endsWith(String suffix)测试此字符串是否以指定的〗?缀结束。equals{Object anObject)将此字符串与指定的对象比较。 equalslgnoreCase(String anotherString)将此String 与另一个String 比较,考虑人小'与’。indexOf(int ch)返H指定字符在此字符串屮第一次出现处的索引。 indexOf(String str)返回第一次出现的指定子字符串在此字符串屮的索引, lastlndexOf(intch)返回指定字符在此字符串中最后??次出现处的索引。 length()返|n丨此字符串的长度。 replace(char oldChar, char newChar) 返回一个新的字符串,它是通过用newChar替换此字符串中出现的所有oldChar得到的。 split(String regex)根据给定正则表达式的匹配拆分此字符串。startsWith{String prefix)测试此字符 串是否以指定的前缀开始。substring(int beginlndex) 返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。 substring(int beginlndex, int endlndex) 返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的beginlndex 处开始,一直到索引endlndex-1处的字符。 t〇CharArray()将此字符串转换为一个新的字符数组。

黄礼斌基于java网页浏览器的应用实现

计算机专业实习报告 实习题目: 基于Java的网页浏览器设计与开发 姓名:黄礼斌 专业:计算机科学与技术 班级:083211 学号:08321113 指导老师:吴建东 2011年11月28日

[实习时间] 2011年11月21日到11月27日 [实习地点] 软件楼601 [实习目的] 通过理论联系实际,巩固所学的知识,提高处理实际问题的能力,为顺利毕业进行做好充分的准备,并为自己能顺利与社会环境接轨做准备。 [实习内容] 基于Java的网页浏览器设计与开发 1、程序开发的基础 (3) 1.1Java技术 (3) 1.1.1Java概述 (3) 1.1.2java平台简介 (3) 1.1.3JDIC项目简介 (4) 1.2实现目标 (4) 1.3开发环境 (5) 2、系统的总体分析与设计 (6) 2.1需求分析 (6) 2.2系统结构与设计分析 (6) 2.2.1响应模式 (6) 2.2.2结构分析 (6) 2.3功能结构图 (7) 3、系统功能与实现 (8) 3.1核心技术 (8) 3.1.1JDIC项目实现浏览器组件 (8) 3.1.2收藏夹的保存与装载 (8) 3.1.3阻止IE打开弹出窗口 (9) 3.2菜单栏的实现 (9) 3.2.1文件菜单 (9) 3.2.2转到菜单 (9) 3.2.3调整菜单 (10) 3.3工具栏的实现 (10) 3.4地址栏的实现 (11) 3.5浏览器选项卡的实现 (12) 3.5.1继承扩展浏览器组件 (12) 3.5.2编写浏览器面板 (13)

3.5.3编写浏览器选项卡面板 (13) 3.5.4编写浏览器组件监听器 (13) 3.6收藏夹的实现 (13) 3.6.1添加到收藏夹 (13) 3.6.2整理收藏夹 (14) 4、测试 (15) 4.1测试与调试的基本概念 (15) 4.2测试时间 (15) 4.3软件测试的内容 (16) 5、实习体会 (17) 1、程序开发的基础 1.1Java技术 1.1.1Java概述 Java是一个广泛使用的编程语言,它基于Java虚拟机技术,从而实现跨平台。它简单,面向对象,不依赖与机器的结构,具有可移植性,安全性,并且提供了并发的机制,具有很高的性能。其次,它最大限度的利用了网络,Java的小应用程序(applet)可在网络上传输而不受CPU和环境的限制,另外,Java还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。Java平台是一种纯软件平台,它有三个版本Java SE、JavaEE、Java ME。 JavaSE允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。Java SE还包含了支持Java Web服务开发的类,并为Java EE 这个版本提供基础。JavaEE下有很多流行的开发框架,像Struts、Spring、Hibernate这种流行的所谓SSH组合等。JavaME应用领域像各种移动设备和嵌入式设备,比如:手机、PDA、电视机顶盒和打印机。 1.1.2java平台简介 Java平台版本 Java平台版本主要有:J2EE(企业版本)、J2SE(标准版本)、J2ME(迷你版本)。这三个版本有不同的用途,J2EE主要用于分布式的网络程序的开发,如电子商务网站和ERP系统;J2SE主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程。 Java平台的组成

JAVA中常用类的常用方法

JAVA中常用类的常用方法 一、https://www.360docs.net/doc/8816760806.html,ng.Object类 1、clone()方法 创建并返回此对象的一个副本。要进行“克隆”的对象所属的类必须实现https://www.360docs.net/doc/8816760806.html,ng. Cloneable接口。 2、equals(Object obj)方法 ?功能:比较引用类型数据的等价性。 ?等价标准:引用类型比较引用,基本类型比较值。 ?存在特例:对、Date及封装类等类型来说,是比较类型及对象的内容而不考虑引用的是否为同一实例。 3、finalize()方法 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 4、hashCode()方法返回该对象的哈希码值。 5、notify()方法唤醒在此对象监视器上等待的单个线程。 6、notifyAll()方法唤醒在此对象监视器上等待的所有线程。 7、toString()方法 返回该对象的字符串表示。在进行String与其它类型数据的连接操作时,自动调用toString()方法。可以根据需要重写toString()方法。 8、wait()方法 在其他线程调用此对象的notify() 方法或notifyAll() 方法前,导致当前线程等待。 二、字符串相关类 l String类 charAt(int index) 返回指定索引处的char 值。 compareTo(String anotherString) 按字典顺序比较两个字符串。 compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写。 concat(String str) 将指定字符串连接到此字符串的结尾。 endsWith(String suffix) 测试此字符串是否以指定的后缀结束。 equals(Object anObject) 将此字符串与指定的对象比较。 equalsIgnoreCase(String anotherString) 将此String 与另一个String 比较,不考虑大小写。indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。 indexOf(String str) 返回第一次出现的指定子字符串在此字符串中的索引。 lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引。 length() 返回此字符串的长度。 replace(char oldChar, char newChar) 返回一个新的字符串,它是通过用newChar 替换此字符串中出现的所有oldChar 得到的。split(String regex) 根据给定正则表达式的匹配拆分此字符串。 startsWith(String prefix) 测试此字符串是否以指定的前缀开始。 substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。 substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的beginIndex 处开

JavaPrintService_Java打印API_用户手册_中文版

目录 第一章介绍 Java平台打印的历史 JDK 1.3 JDK 1.2 JDK 1.1 Java Print Service API能做什么 Java Print Service 构架 javax.print包 发现打印服务 指定打印数据格式 创建打印工作 javax.print.event包 应用程序如何使用JPS 一个基本的例子 第二章属性 属性的类别和值 属性角色 属性集 如何指定属性 标准属性 OrientationRequested Copies Media MediaSize MediaPrintableArea Destination SheetCollate Sides Fidelity 使用JPS属性 第三章指定文档类型 用户格式打印数据 预定义数据格式的MIME类型 文本数据 页面描述语言文档 图像数据 自适应打印数据 表示类 字符编码的重要性 服务格式打印数据 怎样使用DocFlavor 第四章打印及流化文档

比较StreamPrintService与PrintService 定位服务 发现打印服务 发现流打印服务 获得一个打印工作 创建DOC 注册事件 打印服务事件 打印工作事件 PrintJobAttributeListener PrintJobListener 提交打印工作 向打印机提交打印工作 向流提交打印工作 打印服务提供商 第五章打印及流化2D图像 使用打印工作打印或流化图像 打印2D图像 流化2D图像 使用服务格式数据 打印服务格式数据 流化服务格式打印数据 示例:PrintPS.java 示例:PrintGIFtoStream.java 示例:Print2DPrinterJob.java 示例:Print2DGraphics.java 示例:Print2DtoStream.java 示例:PrintGIF.java Java Print Service 词汇表

解析三种Windows操作系统远程控制的实现

解析三种Windows操作系统远程控制的实现 你遇到过这样的情况吗?遇到一位“菜鸟”MM向你请教一个计算机设置或软件安装等方面的问题时,因为距离远,你又不能赶到现场,用即时通讯软件甚至动用电话给她里讲 了半天,她仍是一头雾水,怎么办?她不会只有自己动手了,于是你使用软件远程连接到她的机器上,远程操作她的电脑,问题很快就解决了,顺便还看了一眼MM机器里面的内容。下面笔者就此过程中所需的相关知识为大家一一进行解答! 远程控制因为进一步克服了由于地域性差异而带来的不便性,所以在网络管理、远程技术支持、远程交流、远程办公等领域有着非常广泛的应用。如何实现这种技术呢?其实非常简单,我们可以利用系统本身自带的功能或者利用一些工具软件来实现,但在本文中笔者将就如何使用Windows系统本身自带的功能来实现远程控制进行讲解,下面就让我们大家一起来看下文中远程控制的原理分析以及应用技巧。 远程控制软件的原理 远程控制软件一般分两个部分:一部分是客户端程序Client,另一部分是服务器端程序Server(或Systry),在使用前需要将客户端程序安装到主控端电脑上,将服务器端程序安装到被控端电脑上。它的控制的过程一般是先在主控端电脑上执行客户端程序,像一个普通的客户一样向被控端电脑中的服务器端程序发出信号,建立一个特殊的远程服务,然后通过这个远程服务,使用各种远程控制功能发送远程控制命令,控制被控端电脑中的各种应用程序运行,我们称这种远程控制方式为基于远程服务的远程控制。通过远程控制软件,我们可以进行很多方面的远程控制,包括获取目标电脑屏幕图像、窗口及进程列表;记录并提取远端键盘事件(击键序列,即监视远端键盘输入的内容);可以打开、关闭目标电脑的任意目录并实现资源共享;提取拨号网络及普通程序的密码;激活、中止远端程序进程;管理远端电脑的文件和文件夹;关闭或者重新启动远端电脑中的操作系统;修改Windows注册表;通过远端电脑上、下载文件和捕获音频、视频信号等。 前面我们所说的是一台电脑对一台电脑的情况,其实,基于远程服务的远程控制最适合的模式是一对多,即利用远程控制软件,我们可以使用一台电脑控制多台电脑,这就使得我们不必为办公室的每一台电脑都安装一个调制解调器,而只需要利用办公室局域网的优势就可以轻松实现远程多点控制了。在进行一台电脑对多台远端电脑进行控制

JavaMath类常用方法

例如求平方根的Math.sqrt(n),求a的b次方Math.pow(a, b),求绝对值Math.abs(n)等很多。下面是一些演示。 public class MathTest { public static void main(String[] args) { int n = 16; System.out.println(Math.sqrt(n)); System.out.println(Math.pow(2, 3)); System.out.println(Math.abs(-4)); System.out.println(Math.log10(100)); } } public class MathDemo { public static void main(String args[]){ /** * abs求绝对值 */ System.out.println(Math.abs(-10.4)); //10.4 System.out.println(Math.abs(10.1)); //10.1 /** * ceil天花板的意思,就是返回大的值,注意一些特殊值 */ System.out.println(Math.ceil(-10.1)); //-10.0 System.out.println(Math.ceil(10.7)); //11.0 System.out.println(Math.ceil(-0.7)); //-0.0 System.out.println(Math.ceil(0.0)); //0.0 System.out.println(Math.ceil(-0.0)); //-0.0 /** * floor地板的意思,就是返回小的值 */ System.out.println(Math.floor(-10.1)); //-11.0 System.out.println(Math.floor(10.7)); //10.0 System.out.println(Math.floor(-0.7)); //-1.0

java大作业编一个程序打印出公司月各员工工资

姓名:王镱澍 Java大作业 一、题目 白浪公司的雇员根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。 雇员分为以下若干类: SalariedEmployee:拿固定工资的员工。 HourlyEmployee:按小时拿工资的员工。 SalesEmployee:销售人员,工资由月销售额和提成率决定。 BasePlusSalesEmployee:有固定底薪的销售人员,工资由底薪加上销售提成。 公司会给SalaryEmployee每月另外发放2000元加班费,给 BasePlusSalesEmployee发放1000元加班费。编一个java程序创建上述若干类,并实现确定月份以及该月不同员工的工作情况后打印出该公司该月各员工工资,公司总的工资支出情况。 二、程序功能说明 编一个java程序创建上述若干类,并实现确定该月不同员工的工作情况以及输入月份后打印出该公司该月各员工工资,公司总的工资支出情况。 三、类、属性、方法说明 程序中已给出详细解释在此只作简要说明: Employee:这是所有员工总的父类。 属性:员工的姓名和生日月份。 方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。 SalariedEmployee:Employee的子类,拿固定工资的员工。 属性:月薪。 方法:每月工作超出160小时的部分按照倍工资发放。 HourlyEmployee:Employee的子类,按小时拿工资的员工。 属性:每小时的工资、每月工作的小时数。 SalesEmployee:Employee的子类,销售人员。 属性:月销售额、提成率。 方法:工资由月销售额和提成率决定。 BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员。 属性:底薪。 方法:工资由底薪加上销售提成部分。 四、程序代码 import .*; class MyException extends Exception {

一种远程控制系统的设计与实现

一种远程控制系统的设计与实现 刘旭东 (长安大学信息工程学院陕西西安710064) 摘要:目前,随着计算机网络的广泛应用,无纸办公和远程办公是人们经常谈及的话题,为了实现计算机网络的这 种应用,方便人们工作,本文提出了一种远程控制系统。为了实现这个系统,首先从系统所要实现的功能着手,设计出该 系统的体系结构,并详细说明体系结构中各模块的主要功能;接着从通信效率和网络环境方面考虑,设计出适合于该系统 的通信协议;最后以流程图的方式详细说明系统软件的实现过程。 关键词:远程控制;软件;系统结构;通信协议 中图分类号: TP393.09 文献标识码: B 文章编号: 1004 373X (2005) 02 053 03 1 引言 随着计算机网络的飞速发展,人们可以很方便地从Internet上获取和自己工作生活密切相关的信息,世界也真正变成一个地球村,我们可以和世界上其他任何一个人通过计算机网络进行沟通,信息资源达到了高度的共享。从这一点得到启发,希望能够设计一个远程控制系统,通过他可以在家里控制办公室里的计算机。如果你是软件开发商,你的员工可以通过他在办公室里远程为客户配置系统、对产品进行维护,如果客户向你报告软件产品出现问题你可以远程对产品进行调试,最终解决问题。这样员工就不会因长期的劳苦奔波而抱怨,用户也不会因为你不能及时解决产品的问题而和你讨价还价,当然也为公司节约了人力和财力。下面详述该远程控制系统是如何实现的。 2 远程控制系统的体系结构设计 该远程控制系统由服务器端和客户端2个部分组成,客户端可以通过鼠标和键盘控制服务器端的计算机,同时还可以相互传输文件。其体系结构如图1所示,主要由安全性校验、屏幕控制、鼠标控制、键盘控制、命令控制、文件传输、端口设置等6个模块组成。下面具体说明各个模块的功能。 (1)安全性校验模块 从系统安全性方面考虑,目的是让客户端和服务器端建立可信联接,客户端要想完全控制服务器端的计算机,必须先通过服务器的验证取得服务器的信任。这样可以避免一些不怀好意的人通过客户端窃取服务器端计算机中有用的资料。

(完整word版)Java课程设计的图片浏览器的讲解

一.课程设计的任务及要求 二.需求分析 图形化界面(GUI)编程,编写一个图片浏览器程序可以支持““.GIF”,“.JPEG”,“.jpeg”,“.TGA”,“.JPG”,“.jpg”等格式,单张打开图片,可以将同一目录下的图片按缩略图打开按“上一张”“下一张”按钮可以显示相应图片。运行Applet时,图像不是一气呵成的,因为方法不是吧图像完整的装入内存再显示的。于此相反,方法创建一个线程,该线程与Applet的原有线程并发执行,一边装入一边显示,从而产生上了不联需显示的现象。为了提高图像才显示效果,可以采用双缓冲技术:首先把图像装入内存,然后再显示在屏幕上。 三. 设计思路 3.1界面设计 选择图片按钮:主要用dir函数实现图片的遍历。 上一张,下一张:通过做标轴回调函数实现。 由于本软件为单机软件,不需要大量的数据读写和数据交换,实现上、下功能要求只能读取PictureBox控件当前加载的目录,读取当前路径,创建一维数组。 frame = new Frame("PictureViewer"); Panel pb = new Panel(); Button select = new Button("选择图片"); previous = new Button("上一张"); next = new Button("下一张"); select.addActionListener(this); previous.addActionListener(this); 3.2.图像加载: Applet常用来显示储存在文件中的图像,多数Applet使用的是GIF或JPEG 格式的图像文件。需Applet加载图像只需首先定义Image对象,然后使用getImage()方法把图像和文件结合起来即可。 image_width = bi.getWidth(this); image_height = bi.getHeight(this); double image_proportion = 1.0 * image_height / image_width; System.out.println("image: w "+image_width+" ,h "+image_height+" ,p1 "+image_proportion);

java中常用的一些方法

java中常用的一些方法 字符串 1、获取字符串的长度 length() 2 、判断字符串的前缀或后缀与已知字符串是否相同 前缀startsWith(String s) 后缀endsWith(String s) 3、比较两个字符串 equals(String s) 4、把字符串转化为相应的数值 int型Integer.parseInt(字符串) long型Long.parseLong(字符串) float型Folat.valueOf(字符串).floatValue() double型Double.valueOf(字符串).doubleValue() 4、将数值转化为字符串 valueOf(数值) 5、字符串检索 indexOf(Srting s) 从头开始检索 indexOf(String s ,int startpoint) 从startpoint处开始检索 如果没有检索到,将返回-1 6、得到字符串的子字符串 substring(int startpoint) 从startpoint处开始获取 substring(int start,int end) 从start到end中间的字符 7、替换字符串中的字符,去掉字符串前后空格 replace(char old,char new) 用new替换old trim() 8、分析字符串 StringTokenizer(String s) 构造一个分析器,使用默认分隔字符(空格,换行,回车,Tab,进纸符)StringTokenizer(String s,String delim) delim是自己定义的分隔符

nextToken() 逐个获取字符串中的语言符号 boolean hasMoreTokens() 只要字符串还有语言符号将返回true,否则返回false countTokens() 得到一共有多少个语言符号 文本框和文本区 1、文本框 TextField() 构造文本框,一个字符长 TextField(int x) 构造文本框,x个字符长 TextField(String s) 构造文本框,显示s setText(String s) 设置文本为s getText() 获取文本 setEchoChar(char c) 设置显示字符为c setEditable(boolean) 设置文本框是否可以被修改 addActionListener() 添加监视器 removeActionListener() 移去监视器 2、文本区 TextArea() 构造文本区 TextArea(String s) 构造文本区,显示s TextArea(String s,int x,int y) 构造文本区,x行,y列,显示s TextArea(int x,int y) 构造文本区,x行,y列 TextArea(String s,int x,ing y,int scrollbar) scrollbar的值是: TextArea.SCROLLBARS_BOTH TextArea.SCROLLBARS_VERTICAL_ONLY TextArea.SCROLLBARS_HORIZONTAL_ONLY TextArea.SCROLLBARS_NONE setText(String s) 设置文本为s

打印java方法参数

打印Java方法参数 首先描述一下具体的需求就是,能不能不需要手动添加代码就能打印Java方法所有的参数,这有些时候在我们调试代码的时候有很重要的帮助。 按照这个需求,我们可以想一下我们大体需要一下什么信息,方法的名称,方法参数类型,方法参数的名字,方法参数的值。 如何实现不写代码就能够实现动态的打印这些信息呢,了解Java的这时候就都会想到动态代理。有了动态代理我们就可以不用写代码了,但是为了区分哪些方法需要打印,哪些方法不需要打印,我们这里还需要注解来辅助区分需要打印的方法。 如何获取需要打印的信息呢,这里我相信大家都会想到反射,但是反射这里有一个参数是拿不到的,哪个参数呢,方法参数的名字是拿不到的。这里我们采用的是asm的方式来获取方法参数的名字。 到这里功能已经描述清楚,需要用到的技术也描述清楚,接下来就是具体怎么实现了。 首先,我们设计了一个注解类如下: import https://www.360docs.net/doc/8816760806.html,ng.annotation.ElementType; import https://www.360docs.net/doc/8816760806.html,ng.annotation.Retention; import https://www.360docs.net/doc/8816760806.html,ng.annotation.RetentionPolicy; import https://www.360docs.net/doc/8816760806.html,ng.annotation.Target; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public@interface MethodLog { } 接下来就是我们设计的最后要打印的数据的一个简单的封装类,如下: public class MethodInfo { private int index;//参数的索引 private Object parameterType;//参数的类型 private String parameterName;//参数的名称 private Object parameterValue;//参数的值 public MethodInfo(){} public MethodInfo(int index, Object parameterType, String parameterName, Object parameterValue) { super(); this.index = index; this.parameterType = parameterType; this.parameterName = parameterName; this.parameterValue = parameterValue; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; }

基于java的浏览器的设计与实现

基于java的浏览器的设计与实现——GUI界面子系统 摘要 21世纪人们对互联网的依赖越来越大,而网页浏览器作为上网浏览信息所必需的软件之一,已经得到了广泛地应用。在IE占据了大部分浏览器市场的情况下,国内外开发商依然没有放弃这个巨大的市场,各式各样的浏览器被开发出来抢占市场。网页浏览器的开发与应用已成为了计算机领域近年来的一大热点。 本文用软件工程的开发过程,详细论述了浏览器的分析、设计及代码实现,最终实现一个具有能同时浏览多个网页,可查看收藏夹,可以实现打开网页,超链接监听并响应,前进和后退等基本功能的浏览器。本文以一个实际运作的浏览器Browser为主轴介绍浏览器的设计理念与方法,同时讲述浏览器中各个模块如何互相协同运作,来完成一个呈现网页的工作。通过下载JDIC类库,实现了浏览器选项卡,从而达成了一个窗口显示多个网页的目的。收藏夹的实现是将收藏夹集合序列化到数据文件中,这样收藏夹被持久化解决了收藏夹的问题。另外,Java Swing技术也是本文介绍的浏览器所使用的一种主要的技术,通过使用各个组件,并增加监听器和事件处理等操作,最终形成一个具有一定事物处理能力的浏览器的界面部分。 关键词:浏览器,JDIC类库,Java Swing,事件

Based on the design and implementation of a Java browser Abstract In the 21st century, people rely on the Internet is more and more big, the web browser as one of the necessary software, surfing the Internet information has been widely used. In the case of occupying most of the IE browser market, developers still didn't give up the huge market at home and abroad, developed a variety of browser is preempted market. The development and application of web browser has become a focus in the computer field in recent years. In the development process of software engineering, this paper detailed discusses the analysis, design and code implementation of the browser, and ultimately achieve a have to browse multiple web pages at the same time, to view the favorites, can realize open a webpage, hyperlinks to monitor and respond to, the basic function such as forward and backward in the browser. Based on an actual operation of the Browser Browser Browser design concept and method of introduction for main shaft, various modules tells the Browser how to work together with each other at the same time, to finish the work of a rendered page. By downloading the JDIC class library, the realization of the browser TAB, which reached the purpose of a window to display multiple web pages. The realization of the favorites are favorites collection serialized into a data file, this collection double coverlet persistent solved the problem of the favorites. In addition, the Java Swing technology is also introduced in this paper by the browser using a kind of main technology, through the use of the individual components, and adding listeners and event handling operations such as, eventually forming a certain things browser interface part of processing capacity. Keywords:The browser,The JDIC class library,Java Swing,The event

相关文档
最新文档