文档库 最新最全的文档下载
当前位置:文档库 › Java Swing嵌入浏览器

Java Swing嵌入浏览器

Java Swing嵌入浏览器
Java Swing嵌入浏览器

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 https://www.wendangku.net/doc/2012960613.html,.HttpURLConnection;

import https://www.wendangku.net/doc/2012960613.html,.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 https://www.wendangku.net/doc/2012960613.html,mon.UIUtils;

import chrriis.dj.nativeswing.swtimpl.NativeInterface;

import https://www.wendangku.net/doc/2012960613.html,ponents.JWebBrowser;

import https://www.wendangku.net/doc/2012960613.html,ponents.WebBrowserCommandEvent; import https://www.wendangku.net/doc/2012960613.html,ponents.WebBrowserEvent;

import https://www.wendangku.net/doc/2012960613.html,ponents.WebBrowserListener;

import https://www.wendangku.net/doc/2012960613.html,ponents.WebBrowserNavigationEvent; import https://www.wendangku.net/doc/2012960613.html,ponents.WebBrowserWindowOpeningEvent; import https://www.wendangku.net/doc/2012960613.html,ponents.WebBrowserWindowWillOpenEvent;

import com.jacob.activeX.ActiveXComponent;

import https://www.wendangku.net/doc/2012960613.html,Thread;

import https://www.wendangku.net/doc/2012960613.html,.Dispatch;

import https://www.wendangku.net/doc/2012960613.html,.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() {

@Override

public void windowWillOpen(WebBrowserWindowWillOpenEvent arg0) { lastTime = new Date().getTime();

https://www.wendangku.net/doc/2012960613.html,("___________ windowWillOpen");

}

@Override

public void windowOpening(WebBrowserWindowOpeningEvent arg0) { lastTime = new Date().getTime();

https://www.wendangku.net/doc/2012960613.html,("___________ windowOpening");

}

@Override

public void windowClosing(WebBrowserEvent arg0) {

lastTime = new Date().getTime();

https://www.wendangku.net/doc/2012960613.html,("___________ windowClosing");

}

@Override

public void titleChanged(WebBrowserEvent arg0) {

lastTime = new Date().getTime();

https://www.wendangku.net/doc/2012960613.html,("___________ titleChanged");

}

@Override

public void statusChanged(WebBrowserEvent arg0) {

lastTime = new Date().getTime();

https://www.wendangku.net/doc/2012960613.html,("___________ statusChanged");

}

@Override

public void locationChanging(WebBrowserNavigationEvent arg0) {

lastTime = new Date().getTime();

https://www.wendangku.net/doc/2012960613.html,("___________ locationChanging");

}

@Override

public void locationChanged(WebBrowserNavigationEvent arg0) {

lastTime = new Date().getTime();

https://www.wendangku.net/doc/2012960613.html,("___________ 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);

https://www.wendangku.net/doc/2012960613.html,("______________________ fileName = " + fs);

String[] fns = fs.split(",");

try {

List 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();

}

});

}

@Override

public void locationChangeCanceled(WebBrowserNavigationEvent arg0) { lastTime = new Date().getTime();

https://www.wendangku.net/doc/2012960613.html,("___________ locationChangeCanceled");

}

@Override

public void loadingProgressChanged(WebBrowserEvent arg0) {

lastTime = new Date().getTime();

https://www.wendangku.net/doc/2012960613.html,("___________ loadingProgressChanged");

}

@Override

public void commandReceived(WebBrowserCommandEvent arg0) { lastTime = new Date().getTime();

https://www.wendangku.net/doc/2012960613.html,("___________ commandReceived");

}

});

lbl.addMouseListener(new MouseListener() {

@Override

public void mouseReleased(MouseEvent arg0) {

}

@Override

public void mousePressed(MouseEvent arg0) {

}

@Override

public void mouseExited(MouseEvent arg0) {

}

@Override

public void mouseEntered(MouseEvent arg0) {

}

@Override

public 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 downNetFile(List nameList) throws IOException {

https://www.wendangku.net/doc/2012960613.html,("________________________ downNetFile1");

if (null == nameList || nameList.isEmpty()) {

return new ArrayList();

}

List flist = new ArrayList();

for (String name : nameList) {

https://www.wendangku.net/doc/2012960613.html,("________________________ 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 fileList) {

if (null == fileList || fileList.isEmpty()) {

return;

}

// 初始化组件

ComThread.InitSTA();

https://www.wendangku.net/doc/2012960613.html,("___________________ start Print 1");

for (File file : fileList) {

if (file == null || !file.exists()) {

return;

}

https://www.wendangku.net/doc/2012960613.html,("___________________ 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";

}

https://www.wendangku.net/doc/2012960613.html,("___________________ 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();

}

https://www.wendangku.net/doc/2012960613.html,("___________________ 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();

}

}

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?丨ang.Object 类 1、clone()方法 创建丼返M此对象的一个副木。要进行“克隆”的对象所属的类必须实现https://www.wendangku.net/doc/2012960613.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.wendangku.net/doc/2012960613.html,ng.Object类 1、clone()方法 创建并返回此对象的一个副本。要进行“克隆”的对象所属的类必须实现https://www.wendangku.net/doc/2012960613.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 处开

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

(完整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

易经入门(最全解答)

易经入门(最全解答) 对于周易的迷途者,可能需要找些入门的书籍,建议。但是百度,网站等会经常变动,比如我之前找到一个周易入门的好网站,是从百度里面搜到的,过几天就搜不到了,后悔当时没有收藏网站,所以现在把之前积累的公布出来建议或书籍发布出来,大家收藏一下。 (1)这个比较全面客观的: 数目有很多,建议你你有整体的观念,这样会比较容易学。以下这段介绍,是我保存的,觉得很好,希望对你有用。 选书如选老师,因此选择书籍是一件十分重要的事。在此,向给大家推荐相关书籍,让你少走弯路,成为大师级高手! 重要叮嘱 易学、佛经是迷宫,进门后一定要学会出得了门。正如紫钦天老师在《太极博弈原理》里面“信息对抗:命越算越薄,知命与宿命”提到的,其实现在才最真实的,人要克服的是未来信息对现在的影响!很多人能懂一点点了,以为天下无敌,但是如果未来的信息,没有百分百准确,都是误导人的。最怕三分真,七分假。人依然会迷茫,犹豫,错失。 另外,易曰:知得也要知丧,当你得到了一些东西的时候,你也会失去一些东西。诚然,人生从某种意义上讲,没有绝对的好、坏、善、恶,而在于你的选择。为什么还要特别提醒呢?因在现实中接触不少易友,一学什么易或练什么功,就顾及不到其他方面,给家庭社会造成一些不好的影响。古曰:平常心是道!不要把自己标榜成与别人不一样,否则你会一事无成。要明白你只是一个凡人,不要以为自己学易了就有什么了不起。法、侣、财、地(简单讲就是方法、同道、财力、环境)是学好功法,其实也是学好易经的最好指导。千万不要指望学易来发大财,否则你将走上不归路。以此为职业的人,是有宿因的。薄迦梵歌曰:要把成与败、得于失等同看待。患得患失不是学易人应有的心态。好好工作,养家糊口,业余修习,平凡一生这是吾师给本人的开示和指导,希望易友也能从中得到启发! 最后以一句话与大家共勉:天行健,君子以自强不息;地势坤,君子以厚德载物!众善奉行,诸恶莫作最为紧要! 1、基础书 (1)周易原文注解类: 如果不读周易原文,而想彻底搞懂周易基本是不可能的,万丈高楼平地起,基础越牢,对后面的学习帮助越大。 建议采用中国易经协会会长、哲学教授刘大钧著的《周易概论》,其他如上海古籍出版社、商务印书馆等较大的出版社出版的《周易》都是比较可靠的。 南怀瑾老师倡导的儿童经典导读中心出版的原文《易经》,可以帮助大家认识和听懂一些难读的字。 (2)周易精华思想融汇类: 应该说,目前只有紫钦天老师的《太极博弈原理》一书能做到这点,全书中是没有解释卦象的。但是如果对于一个研究周易几十年的学者来说,一看这书,应该明白其实里面是是蕴含

基于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

太极化形

太极化形地理要诀 自序 且自孔子而后,斯文同骨肉,惟有地理不一家也,盖自古圣贤所创,阴阳五行,浑包天地万物,是有理而無形,理为一本,形为万殊,千变万化,甚难图也。而后世之人,遵圣道分其条目者,百家各有所师,惟有地理,無所遵者也,差错讹谬,背乎性理,此何故也?因古人草率無形,令人阅之不明,含渾無图,復行错认而不自知,故为细加搜剔,草率者详之,重复者删之,不足者补之,另行刻刊。使清纯不杂,庶地理异日可归於一家焉,况今清明二代,地理失传久矣,余作此书,遵沈公地学之形,绘其图像。明乾坤法窍之理,辩其伪真,学者以此为门路,則於隂陽理性之道,未必無小补云。 序 且地理之说,由来久矣,地理之书,亦甚繁矣,问其说,不曰天星遊年,即曰五音卦例,睹其书,非拘泥于星峰砂水,即拘泥乎黄泉会局,求其有合乎太极动静之理,五行造化之用者,百中無一,然彼非不言太极,而实不知太极之所以动静,实不知五行之所以造化。其不知所以动静造化者,縂由於不识地理之隂陽,穴星之向背,相地入乎先观穴星之向背,次察五行之形体,孰阴孰阳,不必求合乎太极,而太极动静之理,自無不含矣,以此寻龍察脉,认穴定向,如在掌握,独怪今时之師,五行莫辩隂陽不分,自诩深识地理,郎有人延卜地,虽十日半月,未能得一吉地。不曰天星不合,即曰卦例不吉,不曰峰水有石疑,即云泉局不利。如是以云卜地,未有能得真地者也,如是

为之葬人,未有不害人者也,余有感而笔於此,庶使后人不受其害,而吾師之道,得以传焉。 太极化形地理要诀 太极为地理子纲,地理要诀可知矣,夫地理不能离乎太极也,明太极者,不诚可知地理要诀哉,且古今地理不離太极,所患者人多昧耳,昧乎比則不能识太极变化之道,亦不能本太极会之会,难多言地理乎,要难卜云其吉矣。今夫太极,在天成象可观,太极在地成形可察,此中之变化無穷也。就生化之五者言之,水火木金土定也,故以五者定其形,即於色味方位预卜凶之兆,就生之四者观之,窝钳乳突是也,故以四者相其局。即於向皆运近,先知祸福之机。然则考夫地理者,可忽太极化生之機乎,而太极化形地理可考矣。 大地层次先天为体,后天为用。何为先天体?龍虎外扩,外坐山、内坐山、内外映山。何为后天为用?穴場隂陽,陽長高隂長高,隂陽皆低以中限高为行,至於结穴多不平,不识阴阳不能用,阴面如鏊背,阳面如掉平,阴属黑,阳属白,如太极之半黑半白也。 小地层次后天为体,先天为用。何为后天体?四面土色前后土左右土,於中不一,其中必有宝色。何为后天用?八方生旺,艮向丙離向庚先后皆合,必兼中有分金。至於穴場多平正,不识土色不能用,陽土有光华,隂土無气色,阴土湿,陽土干如太极之一半纯白也。纯白無黑,黑在穴后,或高或低,必有鏊背之形。半黑半白,黑在左右或平或仄,亦有阴阳之理,合於太极不亦宜乎。地理要诀在太极,而太极尚矣,夫地理千变万化,非太极無以绳之也,則要诀不在乎且以

java常用类知识点总结

java常用类知识点总结 Java常用类 要求: 1、掌握String和StringBuffer的区别,可以熟练使用String和StringBuffer的各 种方法进行相关操作。 2、能够自己编写一个得到日期的操作类,并将日期进行格式化操作。 3、掌握比较器及其基本原理,并可以通过比较器进行对象数组的比较操作。 4、掌握对象克隆技术及其实现 5、能够灵活应用正则表达式对字符串的组成进行判断 6、掌握Math、Random、基本数据类型的包装类的使用 7、描述出Object System对垃圾收集的支持 8、使用NumberFormat、DecimalFormat、BigInteger、BigDecimal进行数字的操 作 String和StringBuffer String的内容一旦声明不可改变,如果要改变,改变的是String的引用地址,如果一个字符串要经常改变,必须使用StringBuffer。 在一个字符串内容需要频繁修改时,使用StringBuffer可以提升操作性能,因为StringBuffer内容可以改变,而String内容不可改变。StringBuffer支持的方法大部分与String类似。 StringBuffer常见用法: (1) 字符串的连接操作

String类可以通过“+“进行字符串的连接,而StringBuffer中却只能使用append方法进行字符串的连接,而且此方法返回一个StringBuffer类的实例,这样就可以采用代码链的形式一直调用append方法。 (2) 在任意位置处为StringBuffer添加内容 可以使用insert方法在指定位置上为StringBuffer添加内容 字符串的反转操作(较为常见的操作,使用reverse方法) (3) 替换指定范围的内容 replace方法可对指定范围的内容进行替换。在String中如果要替换,使用的是replaceAll (4) 字符串截取(使用subString方法从指定范围中截取内容) (5) 删除指定范围的字符串(使用delete方法删除指定范围内容) (6) 查找指定内容是否存在(indexOf查找指定内容,查找到返回内容的位置, 没查到返回-1) 问题:(1)String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有, 没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。在这段代码中,s原先指向一个String对象,内容是 "Hello",然后我们对s进行了+操作,那么s所指向的那个对象是否发生了改变呢,答案是没有。这时,s不指向原来那个对象了,而指向了另一个 String对象,内容为"Hello world!",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。通过上面的说明,我们很容易导出另一个结论,如果经常对字符串进行各种各样的修改, 或者说,不可预见的修改,那么使用String来代表字符串的话会引起很大的内存开销。因为 String对象建立之后不能再改变,所以对于每一个不同的字符

推荐-java的浏览器的设计与实现开题报告 精品

开题报告 班级:学号: 姓名: 学院: 专业: 设计题目:基于java的浏览器的设计与实现—GUI 界面子系统 指导教师:

开题报告 1.结合情况,根据所查阅的文献资料,撰写2000字左右的文献综述: 文献综述 一、选题的目的和意义: 当今世界是一个以计算机网络为核心的信息时代,互联网为人们快速获取、发布和传递信息提供了便捷,而浏览器作为互联网上查找信息的重要工具,给人们提供了巨大而又宝贵了信息财富,受到了大家的高度重视。网页浏览器是显示网页服务器或档案系统内的文件,并让用户与这些文件互动的一种软件[1]。它用来显示在万维网或局域网内的文字、影像及其他资讯。浏览器作为重要的系统应用软件是不可或缺的。但目前,浏览器产品的市场被少数国外大公司垄断,众多的小型浏览器也尚处于发展期,而国内的自主技术的浏览器更屈指可数,刚刚进入实用阶段。迫切需要更多的人来关注浏览器技术,开发中国自主知识产权的浏览器产品。 二、国内外研究现状及发展趋势: 浏览器是一个基于C/S架构的应用软件,其基本的功能,就是能够将英特网上的众多资源,例如网页上的内容与信息或是在线服务等,呈现给使用者并让使用者得以使用存在于英特网上的各项服务[2]。因此透过网络传输数据对浏览器来说,是相当重要且必备的一项能力。 浏览器是一个图形界面的大需求者,选择好的GUI环境实属不易,未来能够实现专有功能,浏览器开发者往往还要对基础的GUI库进行包装、改写,甚至写自己的控制。所有这些,是需要有专业的GUI库开发经验的专职人来完成。 GUI的功劳第一在于软件的操作界面,如窗口、菜单、工具条、滚动条等。第二在于主浏览窗体中的图形元素的输出(通常以自画控件的方式)。前者通常直接使用GUI库中的已有控件,编程难度很小,后者主要利用基本的点线函数,编程难度比较大。在浏览器中使用Java Swing技术编写它的图形界面,而做图形界面首先要考虑的就是选择一个合适的布局管理器[3]。JDK没有表单设计器,需要通过代码来制定布局管理器来放置用户界面组件所在的位置。 布局应理解为界面输出前的预演和处理位置等信息的算法,而不是具体的画图和

薛传正:易林愚公的习易之路

薛传正:易林愚公的习易之路 今日记者有幸采访薛传正老师,经介绍得知薛传正老师现任中华周易名家协会青岛分会会长、常务理事、学术委员会委员、高级预测师、会员等职务。薛传正老师在多年的习易道路上有很多的感悟,今天让我们来聆听薛传正老师30余年来一直不间断的研习易学文化的心声。 记者问:“关于《周易》是迷信的说法,您怎么看?” 薛传正老师答道:“《周易》是中国周代的典箱,被尊为“群经之首,诸子百家之源”,西方文明有《圣经》,东方文明有《周易》。周易文化是中华文化发展的根本与源头,对中国后来历代的政治、经济、文化等诸多方面都产生巨大而又深远的影响,中国的建筑、医学、音乐、绘画、日常生活等无不与《周易》有着千丝万缕的联系,乃至影响到中国人的民族性格与民族精神。如:“天行健君子以自强不息,地势坤君子以厚德载物;”孔子读易、韦编三绝,他的千古名言“生死有命,富贵在天”就连《论语》中也多处引用《周易》的词语。”

记者问:“您是怎样与周易文化结缘的呢?” 薛传正老师答道:“我孩提时受祖父的影响,祖父酷爱中华民族的传统文化(如符咒文化),擅长中医,为当地百姓医治疑难杂症,在家乡享有盛名,我从小受祖父耳闻目睹,印上了周易的烙印,从此激起了学习周易的兴趣;记得,我六岁时,家父放在炕席下的用来护家防身的小土枪,我信手拿着玩耍,姐姐怕我出危险,拼命从我手中夺抢,我生气地把小土枪摔在墙上,土枪走火打在我屁股上,疼痛难忍,血流不止,我祖父运用周易符咒即止血咒给我止住血,顿时疼痛消失,从那以后我对周易文化产生了浓厚的兴趣;在八四年偶遇一周易高人,老人家说:“你在31--35岁几年,会出现经济拮据及官非”,结果在1989年生育二胎,夫人因孩子小而辞去了工作,只靠我自己的收入维持四口人的家庭,生活相当拮据。从那以后更深深爱上了易经,一发不可收拾;自此开始先后研读了命理类书:邵伟华老师的《四柱预测学》李后启老师的《秀枝命理》、《算命100法》、刘文元老师的《四柱正源》以及《三命通会》、《穷通宝鉴》、《滴天髓》、《神峰通考》;风水类:《阴宅三要》、《阳宅爱众》、《堪舆大全》、《阳宅十书》、《八宅明镜》、《阴阳宅大全》、《入地神眼》、《地理五诀》、《雪心赋》、《沈氏玄空学》、《地理啖蔗录》、《金锁玉关》、《地理辨证疏》、《宅经》、秦伦诗老师的《风水》,韩少清的《玄空风水精论》,钟义明的《玄空操作实务》、朱镇强的《择吉安居》;八卦类:邵伟华老师的《周易预测学》、《筮府珠林》;奇门类:张志春老师的《神奇之门》、《开悟之门》,杜新会老师的《奇门遁甲现代实例精解》,石建国老师的《奇门遁甲解真》,刘文元老师的《奇门启悟》,李万福老师的《奇门与四柱》,刘广斌老师的 《奇门预测学》以及《奇门遁甲统综》、《金函玉匣奇门遁甲》、《奇门归旨》;择

基于Java的浏览器的设计与实现(含源文件)

基于Java的浏览器的设计与实现 摘要本课程设计主要运用java语言在Eclipse编程环境下设计一个Web浏览器,从而在Windows 98/2000/XP程序运行平台上来实现它的一些基本功能,本课程设计基本实现了预定目标。浏览器的设计包括了图形界面设计和底层设计,在整个设计过程中需要首先构建好图形界面,然后再编程来实现组件以完成相应的功能,浏览器图形界面作为系统和用户之间反馈信息的平台,起着尤为关键的作用。 1 引言 当今世界是一个以计算机网络为核心的信息时代,互联网为人们快速获取、发布和传递信息提供了便捷,而浏览器作为互联网上查找信息的重要工具,给人们提供了巨大而又宝贵了信息财富,受到了大家的高度重视。网页浏览器是显示网页服务器或档案系统内的文件,并让用户与这些文件互动的一种软件。它用来显示在万维网或局域网内的文字、影像及其他资讯。浏览器作为重要的系统应用软件是不可或缺的。但目前,浏览器产品的市场被少数国外大公司垄断,众多的小型浏览器也尚处于发展期,而国内的自主技术的浏览器更屈指可数,刚刚进入实用阶段。迫切需要更多的人来关注浏览器技术,开发中国自主知识产权的浏览器产品。 1.1 项目设计目的 此次课程设计的目的首先是让我们了解信息产业的多元性,把学到的知识运用到实际中,培养学生的综合模拟和实际操作能力,提高学生理论联系实际的能力,开拓创新;其次是掌握使用Eclipse工具设计一个简单的Web浏览器的方法,从而实现对资源的有效访问;掌握Java语言编程,并可综合运用这些知识解决一定的实际问题,使我们在所学知识的综合运用能力上以及分析问题、解决问题能力上得到一定的提高;认识到团队精神的重要性,能够通过良好的分工合作来完成既定目标。 1.2 项目设计内容

相关文档
相关文档 最新文档