- 浏览: 952146 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (383)
- JSP 自定义标签实现 (1)
- JSP (2)
- javascript (161)
- JAVA (100)
- HTML (26)
- jQuery (11)
- J2EE (1)
- Log4J (1)
- HTML5 (6)
- DB2 (2)
- Spring (14)
- 浏览器兼容 (1)
- JavaMail (1)
- JAVA(转载) (1)
- freemarker (1)
- 项目管理 (1)
- 项目架构学习 (1)
- Oracle (11)
- 开源项目 (2)
- 网络编程 (4)
- C (1)
- C++ (0)
- Xpath (1)
- 待写 (10)
- JXL (1)
- XML (1)
- JNDI (2)
- POI (8)
- Struts2 (3)
- 异常解决方法 (1)
- Sql Server (2)
- windows (2)
- SqlServer (1)
- 前端 (1)
- 正则表达式 (2)
- 浏览器兼容问题 (2)
- 转载 (25)
- css (11)
- svn (5)
- 工程构建 (1)
- 好用的网站 (1)
- sql (3)
- chrome V8 (1)
- javacript 报表 (1)
- FusionCharts (1)
- eclipse (2)
- tomcat (4)
- hibernate (2)
- 硬件 (1)
- 杂烩 (1)
- Linux (1)
- ubuntu (1)
- 设计模式 (2)
- 缓存 (1)
- 数据库 (1)
- JVM (2)
- DOM4j (1)
- 其他 (1)
- JACOB (1)
- extjs (3)
- ligerUi (1)
- 在线HTML编辑器 (1)
- API (1)
- OpenOffice (1)
- webservice (1)
- json (1)
- 百度map (1)
- NodeJs (1)
- greeplum jdbc spring (1)
- easyui (1)
- hightchart (1)
- 游戏 (1)
- HttpClient (1)
- 正则 (1)
- canvas (4)
- HTML5,javascript,canvas (0)
最新评论
-
changelo:
缺少了秦皇岛市
中国省,市,区 json数据 -
yurui829:
解析配置行那等号前后有可能有空格,改为如下比较好:String ...
java 读取.ini配置文件工具类 -
贝塔ZQ:
poi生成excel文档,感觉蛮复杂的,可以试试用pageof ...
POI生成excel带下拉 -
langke93:
我发现greenplum 通过jdbc insert性能很差, ...
jdbc 配置连接greeplum数据,spring配置连接greeplum数据(简单配置学习) -
zhutulang:
哪有收邮件???
Spring 邮件接收发送实例
package com.file; import java.awt.BorderLayout; import java.awt.event.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import javax.swing.*; import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkListener; import javax.swing.filechooser.FileFilter; public class WebBrowser extends JFrame implements HyperlinkListener, PropertyChangeListener {// 实现Web浏览器,支持HTML页面的显示 private static final long serialVersionUID = 1L; JEditorPane Pane; // 显示HTML的面板 JLabel messageLine; // 最底下的状态栏 JTextField url; // 网址URL输入栏 JFileChooser fileChooser;// 文件选择器 JButton back;// 前进按钮 JButton forward;// 后退按钮 java.util.List historyReport = new ArrayList(); // 保存历史记录的列表 int current = -1; // 当前页面的在历史记录列表中位置 public static final int maxHistory = 50;// 当超过50时消除历史记录 static int count = 0; // 当前已经打开的浏览器窗口数 static boolean exit = false; String home = "http://www.baidu.com"; // 默认的主页 public WebBrowser() {// 默认构造方法 super("TextWebBrowser"); Pane = new JEditorPane(); // 新键面板 Pane.setEditable(false); // 不可编辑 Pane.addHyperlinkListener(this); // 注册事件处理器,用于超连接事件。 Pane.addPropertyChangeListener(this);// 用于处理属性改变事件 this.getContentPane().add(new JScrollPane(Pane),// 将面板放入主窗口中 BorderLayout.CENTER);// 面板居中 messageLine = new JLabel(" ");// 创建状态栏 this.getContentPane().add(messageLine, BorderLayout.SOUTH); this.initMenu();// 调用方法初始化菜单 this.initToolbar();// 调用方法初始化工具栏 WebBrowser.count++; this.addWindowListener(new WindowAdapter() { // 当关闭窗口时,触发事件 public void windowClosing(WindowEvent e) { close(); } }); } private void initMenu() {// 初始化菜单栏 JMenu fileMenu = new JMenu("文件");// 创建文件菜单项 fileMenu.setMnemonic('F');// 设置快捷键 JMenuItem newMenuItem = new JMenuItem("新建");// 创建新建项 newMenuItem.setMnemonic('N');// 设置快捷键 newMenuItem.addActionListener(new ActionListener() {// 选择新建触发打开窗口事件 public void actionPerformed(ActionEvent e) { newBrowser();// 调用打开新的窗口方法 } }); JMenuItem openMenuItem = new JMenuItem("打开");// 创建打开项 openMenuItem.setMnemonic('O');// 设置快捷键 openMenuItem.addActionListener(new ActionListener() {// 选择打开触发打开窗口事件 public void actionPerformed(ActionEvent e) { openLocalPage();// 调用打开文件方法 } }); JMenuItem closeMenuItem = new JMenuItem("关闭");// 创建关闭项 closeMenuItem.setMnemonic('C');// 设置快捷键 closeMenuItem.addActionListener(new ActionListener() {// 选择关闭触发打开窗口事件 public void actionPerformed(ActionEvent e) { close();// 调用关闭窗口方法 } }); JMenuItem exitMenuItem = new JMenuItem("退出");// 创建退出项 exitMenuItem.setMnemonic('E');// 设置快捷键 exitMenuItem.addActionListener(new ActionListener() {// 选择退出触发打开窗口事件 public void actionPerformed(ActionEvent e) { exit();// 调用退出方法 } }); fileMenu.add(newMenuItem);// 将新建项添加到文件菜单下 fileMenu.add(openMenuItem);// 将打开项添加到文件菜单下 fileMenu.add(closeMenuItem);// 将关闭项添加到文件菜单下 fileMenu.add(exitMenuItem);// 将退出项添加到文件菜单下 JMenuBar menuBar = new JMenuBar();// 创建菜单栏 menuBar.add(fileMenu);// 将文件菜单放入菜单栏 this.setJMenuBar(menuBar);// 设置菜单栏到主窗口 } private void initToolbar() {// 初始化工具栏 back = new JButton("后退");// 创建后退按钮 back.setEnabled(false);// 不可用 back.addActionListener(new ActionListener() {// 选择后退触发后退事件 public void actionPerformed(ActionEvent e) { back();// 调用后退方法 } }); forward = new JButton("前进");// 创建前进按钮 forward.setEnabled(false);// 不可用 forward.addActionListener(new ActionListener() {// 选择前进触发前进事件 public void actionPerformed(ActionEvent e) { forward();// 调用前进方法 } }); JButton refreshButton = new JButton("刷新");// 创建刷新按钮 refreshButton.addActionListener(new ActionListener() {// 选择刷新触发刷新事件 public void actionPerformed(ActionEvent e) { reload();// 调用刷新方法 } }); JToolBar toolbar = new JToolBar();// 创建工具栏 toolbar.add(back);// 将后退按钮添加到工具栏 toolbar.add(forward);// 将前进按钮添加到工具栏 toolbar.add(refreshButton);// 将刷新按钮添加到工具栏 url = new JTextField();// 创建文本框 url.addActionListener(new ActionListener() {// 输入地址回车触发事件 public void actionPerformed(ActionEvent e) { displayPage(url.getText()); } }); toolbar.add(new JLabel(" 地址:"));// 添加地址标签 toolbar.add(url);// 将文本框添加到工具栏 this.getContentPane().add(toolbar, BorderLayout.NORTH);// 将工具栏放在主窗口的南部 } public static void closeWindowWhenAllExit(boolean b) {// 当所有窗口关闭时浏览器退出 exit = b; } public void setHome(String home) {// 设置主页 this.home = home; } public String getHome() { return home; } private boolean visitURL(URL source) {// 访问网址URL try { String href = source.toString();// 获取网址 Pane.setPage(source); // 设置待访问的URL this.setTitle(href); // 页面打开后,将浏览器窗口的标题设为URL url.setText(href); // 网址输入框的内容也设置为URL return true; } catch (IOException ex) { messageLine.setText("不能打开页面:" + ex.getMessage()); return false; } } public void displayPage(URL url) {// 打开URL指定的页面,URL放入历史列表中 if (visitURL(url)) { // 访问页面是否成功 historyReport.add(url); // URL放入历史列表中 int numentries = historyReport.size(); if (numentries > maxHistory + 10) { historyReport = historyReport.subList(numentries - maxHistory, numentries); numentries = maxHistory; } current = numentries - 1; if (current > 0) {// 不是当前页 back.setEnabled(true);// 允许使用后退按钮 } } } public void displayPage(String href) {// 浏览器打开指定页面 try { if (!href.startsWith("http://")) {// 默认为HTTP协议 href = "http://" + href; } displayPage(new URL(href));// 调用方法 } catch (MalformedURLException ex) { messageLine.setText("错误的网址: " + href); } } public void openLocalPage() {// 打开本地文件 if (fileChooser == null) { fileChooser = new JFileChooser();// 创建文件选择器 FileFilter filter = new FileFilter() {// 文件过滤器限制只接受HTML和HTM文件 public boolean accept(File f) { String fn = f.getName(); if (fn.endsWith(".html") || fn.endsWith(".htm")) { return true; } else { return false; } } public String getDescription() { return "HTML Files"; } }; fileChooser.setFileFilter(filter); fileChooser.addChoosableFileFilter(filter);// 只允许选择HTML和HTM文件 } int result = fileChooser.showOpenDialog(this);// 打开文件选择器 if (result == JFileChooser.APPROVE_OPTION) {// 选择确定按钮 File selectedFile = fileChooser.getSelectedFile();// 获得选择的文件 try { displayPage(selectedFile.toURL()); } catch (MalformedURLException e) { e.printStackTrace(); } } } public void back() {// 后退方法 if (current > 0) { visitURL((URL) historyReport.get(--current));// 访问前一页 } back.setEnabled((current > 0));// 当前页下标>0,可后退 forward.setEnabled((current < historyReport.size() - 1));// 下标不是最后一页允许前进 } public void forward() {// 前进方法 if (current < historyReport.size() - 1) { visitURL((URL) historyReport.get(++current)); } back.setEnabled((current > 0));// 当前页面下标>0,可后退 forward.setEnabled((current < historyReport.size() - 1));// 当前页面下标不是最后,可前进 } public void reload() {// 重新加载页面 if (current != -1) { Pane.setDocument(new javax.swing.text.html.HTMLDocument());// 显示空白页 visitURL((URL) historyReport.get(current));// 访问当前页 } } public void home() {// 显示主页方法 displayPage(getHome()); } public void newBrowser() {// 打开新的浏览器窗口 WebBrowser b = new WebBrowser(); b.setSize(this.getWidth(), this.getHeight());// 窗口与当前窗口一样大 b.setVisible(true); } public void close() {// 关闭当前窗口 this.setVisible(false);// 隐藏当前窗口,销毁窗口中的组件 this.dispose(); synchronized (WebBrowser.class) { WebBrowser.count--; if ((count == 0) && exit) { System.exit(0); } } } public void exit() {// 退出窗口程序 if ((JOptionPane.showConfirmDialog(this, "你确定退出Web浏览器?", "退出", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION)) {// 判断是否退出 System.exit(0); } } public void hyperlinkUpdate(HyperlinkEvent e) {// 处理超链接事件 HyperlinkEvent.EventType type = e.getEventType();// 获取事件类型 if (type == HyperlinkEvent.EventType.ACTIVATED) {// 点击超链接 displayPage(e.getURL()); } else if (type == HyperlinkEvent.EventType.ENTERED) {// 鼠标移动到超连接 messageLine.setText(e.getURL().toString());// 状态栏设值 } else if (type == HyperlinkEvent.EventType.EXITED) {// 鼠标离开超连接 messageLine.setText(" ");// 状态栏设值 } } public void propertyChange(PropertyChangeEvent e) {// 处理属性改变事件 } public static void main(String[] args) throws IOException {// java程序主入口处 WebBrowser.closeWindowWhenAllExit(true);// 设置浏览器,当所有浏览器窗口都被关闭时,退出应用程序 WebBrowser browser = new WebBrowser(); // 创建一个浏览器窗口 browser.setSize(500, 400); // 设置浏览器窗口的默认大小 browser.setVisible(true); // 显示窗口 browser.displayPage(browser.getHome()); // 打开主页 } }
发表评论
-
JAVA IO 字节流实现文件copy效率比较
2014-12-24 13:32 3344package jonavin.io; import ... -
EhCache简单例子
2014-10-20 17:04 1187import net.sf.ehcache.Cache; ... -
java 读取.ini配置文件工具类
2014-10-09 16:29 9408import java.io.BufferedReader; ... -
POI读取excel文件通用代码(增强版--支持返回javaBean集合)---2003,2007
2014-09-25 13:21 2939import java.io.File; import j ... -
HttpClient模拟get,post请求并发送请求参数(json等)
2014-09-18 16:33 16939import java.io.IOException; ... -
POI读取Excel通用代码---支持2003,2007
2014-09-18 14:07 2155package com.citics.crm.custome ... -
将数据库树形记录转为java 树形数据结构
2014-08-24 18:36 4791/** * 转换为Tree结构 * @p ... -
java HTML2PDF HTML2DOC THML2Image 后台屏幕截图
2014-08-15 11:22 1295网上找的,下载学习吧。 -
java缓存技术学习
2014-07-25 18:05 5941package com.citics.crm.custome ... -
java unicode 转中文(学习用)
2014-07-10 09:47 1194第一种方式自己实现(笨,但可以知道原理) /** ... -
java+javascript获得两个日期之间的所有月份
2014-05-30 12:29 3278java版 ... -
java开发中有用的工具类
2014-01-03 14:51 0自己备用,不公开 -
java模拟调用Servlet
2013-12-26 13:27 1183public static void main(String ... -
JSOUP 网络爬虫
2013-12-17 10:17 874简单例子学习用 -
javax 邮件发送
2013-10-21 10:20 2468import java.util.Date; import ... -
[JODConverter]word转pdf心得分享(转)
2013-10-10 14:48 1928官方网站: http://www.artofsolving. ... -
java MD5机密工具
2013-09-13 09:33 1230/************************* ... -
JAVA 将文件转换为字节
2013-09-06 10:20 1344package com.tacct.tradecontrac ... -
javaBean转Map工具类
2013-09-05 13:37 9641package com.tacct.tradecontrac ... -
JAVA 操作blob数据然后生成word文件
2013-09-05 11:27 2107import java.io.*; import jav ...
相关推荐
【纯Java浏览器源码解析】 在Java编程领域,创建一个基于Java的浏览器是一个挑战性的项目,它可以深化对JavaSE(标准版)的理解,尤其是Swing库的使用,用于构建图形用户界面(GUI)。这个“纯Java浏览器”项目,...
Java浏览器课程设计是一门深入探讨如何使用Java编程语言构建一个功能完备的Web浏览器的实践性课程。这个项目旨在让学生理解网络通信的基本原理,掌握Java GUI(图形用户界面)设计,并了解浏览器背后的复杂工作流程...
作为一个纯Java实现的浏览器驱动,jBrowserDriver完全摒弃了传统的图形用户界面,转而依赖于WebKit渲染引擎来解析和执行网页。这使得它在不需要实际显示浏览器窗口的情况下进行自动化测试和网页操作,尤其适用于...
【标题】"用Java写的简单的Web浏览器"是一个基于Java编程语言开发的轻量级网络浏览应用,它旨在提供基础的网页浏览功能。这样的项目对于学习Java编程和理解Web交互原理的初学者来说,是一个很好的实践案例。 【描述...
在本文中,我们将深入探讨如何使用Java编程语言来实现一个简单的浏览器功能。Java以其跨平台性和丰富的类库,成为开发这种应用的理想选择。NETBEANS是一个流行的集成开发环境(IDE),它提供了用户友好的界面和强大...
【纯Java实现的J2EE项目详解】 在Java开发领域,J2EE(Java 2...这个“纯Java做的J2EE项目”不仅是一个学习的实例,也是一个实践平台,通过它,你可以掌握J2EE开发的基本流程和核心技术,为将来的工作打下坚实的基础。
在本项目中,"纯Java实现整个网页截图项目源代码" 是一个利用Java编程语言来实现的实用程序,它能够捕获整个网页的图像并将其保存为图片文件。这个项目的核心在于利用DJNativeSwing组件,这是一个开源的Java库,它...
### Java学习入门资料知识点梳理 #### 一、Java语言历史与发展 - **起源与早期发展** - **前身**:Oak(1990年),由James Gosling等人在Sun Microsystems开发。 - **Green项目**:Sun Microsystems于1990年开始...
在这个"纯Java实现的OAuth2流程"中,我们将深入探讨如何不依赖Spring Boot来独立构建OAuth2的客户端和服务端。 首先,我们要理解OAuth2的基本流程,它通常包括四个角色:资源所有者(Resource Owner)、资源服务器...
【纯Java编写的拼图游戏】是一款基于Java技术开发的娱乐应用,它为用户提供了在计算机上或网页中体验拼图游戏的平台。这款游戏利用了Java的跨平台特性,可以在不同的操作系统上运行,同时通过Web技术,使得玩家也能...
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码...鼓励下载和使用,并欢迎大家互相学习,共同进步。
在JAVA源码学习下载这个主题中,我们主要探讨两个项目:一个简单的文本编辑器程序和一个具有简单计算功能的计算器applet程序。这两个项目都是在DOS环境下运行的,这表明我们将回到编程的基础,理解如何在命令行界面...
总的来说,这个项目为Java开发者提供了一个实践机会,通过学习和使用jdic JEditorPane,他们可以深入理解Java GUI编程,特别是如何在Java应用程序中嵌入复杂的Web浏览功能。同时,这也是一种探究双内核浏览器工作...
通过这个项目,开发者可以学习到如何利用Java Swing构建用户界面,处理网络请求,以及实现基本的浏览器功能。同时,这也是一个很好的练习,有助于理解Java多线程、网络编程以及GUI设计的基础知识。
- **面向对象**:Java是一种纯面向对象的语言,支持封装、继承和多态等特性。 - **平台独立性**:通过Java虚拟机(JVM),Java程序可以跨平台运行。 - **安全性**:Java内置了安全机制,例如沙箱模型,能够防止恶意...
本项目是基于纯Java实现的一个邮件服务器,名为James,版本为2.3.1。James是一个开源项目,它提供了一个全面的邮件服务器解决方案,适用于小型到大型的企业环境。 **JavaMail API** JavaMail API是Java平台上的一...
本教程将深入探讨如何使用纯Java编写Swing和AWT应用,帮助你掌握这两者的核心概念和用法。 Swing是Java Foundation Classes (JFC) 的一部分,它提供了丰富的用户界面组件,如按钮、文本框、菜单等,用于构建美观且...
- **浏览器支持**: Hotjava 是第一个支持 Java 的浏览器。随后 Netscape 2.0 也加入了支持。 - **早期版本发展**: - 1995 年 5 月 23 日发布 Java 1.0.2 API。 - 1997 年 2 月 18 日发布 JDK 1.1 (Java 1.1 API)。...
Java Servlet是Java编程语言中用于处理Web服务器与客户端交互的一种技术,主要应用于构建动态Web应用程序。Servlet是Java EE(企业版)的一部分,它允许开发者在服务器端创建强大的、可扩展的网络应用程序。以下是对...