- 浏览: 34249 次
- 性别:
- 来自: 北京
最新评论
-
12345678:
貌似明白了,谢谢。
swing 线程 -
山脚下的农民:
不错,有创意
java 浏览器1 -
ftp51423121:
很漂亮我是说
转:Https中安全正书导入到java的cacerts证书库中 -
xzs603:
说下原理!
转:Https中安全正书导入到java的cacerts证书库中
package com.email;
import javax.mail.*;
import javax.mail.internet.*;
import javax.swing.BorderFactory;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JLabel;
import javax.swing.JList;
import java.util.*;
import java.awt.BorderLayout;
import javax.swing.JProgressBar;
import javax.swing.ListModel;
import javax.swing.ListSelectionModel;
import javax.swing.SwingUtilities;
import javax.swing.border.BevelBorder;
import javax.swing.border.LineBorder;
import javax.swing.border.SoftBevelBorder;
import java.awt.event.*;
/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
/**
* <p>Title: 使用JavaMail接收邮件</p>
* <p>Description: 实例JavaMail包接收邮件,本实例没有实现接收邮件的附件。</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Filename: POPMail.java</p>
* @version 1.0
*/
public class POPMail extends javax.swing.JDialog implements WindowListener {
/**
*<br>方法说明:主方法,接收用户输入的邮箱服务器、用户名和密码
*<br>输入参数:
*<br>返回类型:
*/
String server,user,pass,mailfrom;
PropertyFileOperation op;
private JLabel jLabel;
private JList jList;
private JProgressBar jProgressBar;
private int sum,mailNum;
private Vector v=new Vector();
POPMail inst;
public void windowOpened(WindowEvent windowEvent) {
TMail doIt = new TMail();
doIt.start();
}
public class TMail extends Thread {
public void run(){
getMail();
}
}
public void windowClosed(WindowEvent windowEvent) { }
public void windowIconified(WindowEvent windowEvent) { }
public void windowDeiconified(WindowEvent windowEvent) { }
public void windowActivated(WindowEvent windowEvent) { }
public void windowDeactivated(WindowEvent windowEvent) { }
public void windowClosing(WindowEvent windowEvent) {
System.exit(0);
}
// private void center() {
// Dimension screenDim = Toolkit.getDefaultToolkit().getScreenSize();
// setLocation( ( ( screenDim.width - getSize().width ) / 2 ),
// ( ( screenDim.height - getSize().height ) / 2) );
// }
/**
* Auto-generated main method to display this JDialog
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
POPMail inst = new POPMail();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
//getMail();
}
public POPMail(int init)
{
inst = new POPMail();
inst.setLocationRelativeTo(null);
inst.setModal(true);
inst.setResizable(false);
inst.setVisible(true);
inst.pack();
//Thread.currentThread().sleep(2000);
}
public POPMail() {
super();
this.addWindowListener(this);
initGUI();
///getMail();
}
public void getMail()
{
///////////////
op=new PropertyFileOperation("MailServer.properties");//读取邮箱配置
v.addElement("加载邮箱配置");
this.jList.setListData(v);
////////////////重邮箱更新粮库服务器信息/////////////////////////////////////////////////////
int num=Integer.parseInt(op.getVal("num"));
server=op.getVal("server");
user=op.getVal("user");
pass=op.getVal("pass");
mailNum=num;
mailfrom=op.getVal("from");
//System.out.println(num);
v.addElement("加载服务器配置");
this.jList.setListData(v);
op=new PropertyFileOperation("GrainStoreServer.properties");
v.addElement("更新服务器信息");
this.jList.setListData(v);
receive(server, user, pass);
}
private void initGUI() {
try {
{
jProgressBar = new JProgressBar();
getContentPane().add(jProgressBar, BorderLayout.SOUTH);
this.jProgressBar.setMaximum(100);
this.jProgressBar.setMinimum(0);
}
{
jLabel = new JLabel();
getContentPane().add(jLabel, BorderLayout.NORTH);
jLabel.setText("\u670d\u52a1\u5668\u4fe1\u606f\u66f4\u65b0\u4e2d\uff0c\u8bf7\u7a0d\u540e...");
jLabel.setPreferredSize(new java.awt.Dimension(392, 36));
}
{
ListModel jListModel =
new DefaultComboBoxModel(
new String[] { "" });
jList = new JList();
getContentPane().add(jList, BorderLayout.CENTER);
jList.setModel(jListModel);
jList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jList.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, null, null, null, null));
}
this.setSize(400, 263);
} catch (Exception e) {
//e.printStackTrace();
v.addElement("错误信息:"+e.getMessage());
this.jList.setListData(v);
}
}
/*public POPMail(String popserver,String popuser,String poppass,int num,String popfrom)
{
//SwingUtilities.invokeLater(new Runnable() {
//public void run() {
//POPMail inst = new POPMail();
//inst.setModal(true);
//inst.setVisible(true);
//}
//});
POPMail inst = new POPMail();
//inst.setModal(true);
inst.setVisible(true);
initGUI();
op=new PropertyFileOperation("GrainStoreServer.properties");
server=popserver;
user=popuser;
pass=poppass;
mailNum=num;
mailfrom=popfrom;
receive(popserver, popuser, poppass);
inst.pack();
}*/
/**
*<br>方法说明:接收邮件信息
*<br>输入参数:
*<br>返回类型:
*/
public void receive(String popServer, String popUser, String popPassword){
Store store=null;
Folder folder=null;
try{
//获取默认会话
Properties props = System.getProperties();
Session session = Session.getDefaultInstance(props, null);
//使用POP3会话机制,连接服务器
store = session.getStore("pop3");
store.connect(popServer, -1,popUser,popPassword);
//store.connect(popServer, popUser, popPassword);
//获取默认文件夹
folder = store.getDefaultFolder();
if (folder == null) throw new Exception("无默认文件夹");
//如果是收件箱
folder = folder.getFolder("INBOX");
if (folder == null) throw new Exception("无服务器信息");
//使用只读方式打开收件箱
folder.open(Folder.READ_ONLY);
//得到文件夹信息,获取邮件列表
Message[] msgs = folder.getMessages();
int mailCount=msgs.length;
int msgNum=0;
for (msgNum = 0; msgNum < mailCount; msgNum++){
//if(msgNum==mailNum)//如果检索的结果等于服务器的数目,跳出循环
// break;
int percent =(int)((msgNum+1)*100/mailCount);
//System.out.println(percent);
//this.jTextField.setText(Integer.toString(percent));
//this.jTextField.repaint();
//this.jTextField.validate();
this.jProgressBar.setValue(percent);
this.setTitle("服务器列表更新:"+Integer.toString(percent)+"%");
jProgressBar.repaint();
jProgressBar.validate();
//frame.setVisible(true);
//Thread.sleep(500);
saveMsg(msgs[msgNum]);
}
//Dimension screensize=Toolkit.getDefaultToolkit().getScreenSize();
//this.getParent().setLocation(0, 0);
//this.getParent().setSize(screensize.width,screensize.height-20);
}catch (Exception ex){
//ex.printStackTrace();
v.addElement("错误信息:"+ex.getMessage());
this.jList.setListData(v);
}
finally{
//释放资源
try{
if (folder!=null) folder.close(false);
if (store!=null) store.close();
}catch (Exception ex2) {
// ex2.printStackTrace();
v.addElement("错误信息:"+ex2.getMessage());
this.jList.setListData(v);
}
finally
{
this.dispose();
inst=null;
}
}
}
/**
*<br>方法说明:打印邮件信息
*<br>输入参数:Message message 信息对象
*<br>返回类型:
*/
public void saveMsg(Message message){
try{
//获得发送邮件地址
String from=((InternetAddress)message.getFrom()[0]).getPersonal();
if (from==null) from=((InternetAddress)message.getFrom()[0]).getAddress();
// System.out.println("FROM: "+from);
if(from.equals(mailfrom) || mailfrom.equals(""))
{
//获取主题
String subject=message.getSubject();
//System.out.println("SUBJECT: "+subject);
String[] str = subject.split("\\|");
if(str.length==3)
{
v.addElement("更新服务器"+str[0]+"配置");
this.jList.setListData(v);
op.setProperties("server"+str[0], str[1]);
op.setProperties("port"+str[0], str[2]);
// op.setProperties("flag"+str[0], "1");
// sum+=1;
// System.out.println("server"+str[0]+":"+str[1]);
// System.out.println("port"+str[0]+":"+str[2]);
// System.out.println(subject);
}
}
//获取信息对象
// Part messagePart=message;
//Object content=messagePart.getContent();
//附件
//if (content instanceof Multipart){
// messagePart=((Multipart)content).getBodyPart(0);
// System.out.println("[ Multipart Message ]");
// }
//获取content类型
//String contentType=messagePart.getContentType();
//如果邮件内容是纯文本或者是HTML,那么打印出信息
//System.out.println("CONTENT:"+contentType);
// if (contentType.startsWith("text/plain")||
//contentType.startsWith("text/html")){
// InputStream is = messagePart.getInputStream();
// BufferedReader reader=new BufferedReader(new InputStreamReader(is));
// String thisLine=reader.readLine();
// while (thisLine!=null){
//System.out.println(thisLine);
//thisLine=reader.readLine();
// }
//}
//System.out.println("-------------- END ---------------");
}catch (Exception ex){
//ex.printStackTrace();
v.addElement("错误信息:"+ex.getMessage());
this.jList.setListData(v);
}
}
}
package com.email;
import java.io.IOException;
import java.io.OutputStream;
import java.util.*;
import java.io.*;
import javax.swing.JOptionPane;
public class PropertyFileOperation {
private File file;
private String filename;
private Properties p = new Properties();
public PropertyFileOperation(String fileName)
{
file = new File (System.getProperty("user.dir")+"\\INF\\"+fileName);
filename=System.getProperty("user.dir")+"\\INF\\"+fileName;
getProperties();
}
public void getProperties(){
//ClassLoader cl = this.getClass().getClassLoader();
FileInputStream input;
// if(cl!=null)
//input=cl.getResourceAsStream(filename);
if(!file.exists())
{
//System.out.println(filename);
JOptionPane.showMessageDialog(null, "配置文件不存在","提示", JOptionPane.ERROR_MESSAGE);
return;
}
try
{
input = new FileInputStream(filename);
p.load(input);
}
catch(IOException e)
{
JOptionPane.showMessageDialog(null, "配置文件加载错误","提示", JOptionPane.ERROR_MESSAGE);
e.printStackTrace();
}
//else
//input=ClassLoader.getSystemResourceAsStream(filename);
}
public void setProperties(String field,String val) {
p.setProperty(field,val);
try {
OutputStream fos = new FileOutputStream(file);
p.store(fos, filename);
fos.close();
} catch (FileNotFoundException ex) {
//System.out.println("file is NULL !!!");
ex.printStackTrace();
} catch (IOException ex) {
// System.out.println("IO is Error !!!");
ex.printStackTrace();
}
}
public String getVal(String field)
{
return p.getProperty(field);
}
}
附:配置文件
GrainStoreServer.properties
#C:\Documents and Settings\admin\workspace\JExplorer\INF\GrainStoreServer.properties
#Thu Sep 20 14:11:31 CST 2007
server04=cn.msn.com
server03=cn.yahoo.com.cn
port04=80
server02=www.sina.com
port03=80
server01=www.baidu.com
port02=80
port01=80
MailServer.properties
#C:\Documents and Settings\admin\workspace\JExplorer\INF\MailServer.properties
#Tue Sep 18 17:09:10 CST 2007
port=110
server=pop3.163.com
user=user@163.com
num=50
from=
pass=pass
Tree.properties
server1=[01]±±¾©
server2=[02]ÇàÔÆ
server3=[03]²ýƽ
server4=[04]Î÷³Ç
相关推荐
总的来说,"Java浏览器"项目不仅展示了Java在创建复杂应用程序时的能力,还为Java开发者提供了一个实践多线程、网络编程、UI设计和安全策略的绝佳案例。通过深入研究和改进这样的项目,Java开发者可以提升自己的技能...
标题中的“超漂亮的纯JAVA浏览器”指的是一个基于Java语言开发的网页浏览应用,它具有出色的用户界面设计,提供了良好的视觉体验。这样的浏览器通常利用Java的跨平台特性,可以在多种操作系统上运行,包括Windows、...
下面我们将深入探讨Java浏览器的核心知识点。 1. JavaFX:JavaFX是用于构建桌面、移动和嵌入式系统的现代Java GUI应用程序的框架。在Java浏览器的实现中,JavaFX可能被用作渲染引擎,提供图形用户界面组件,如按钮...
2. **Swing**:虽然JavaFX是现代的GUI库,但老版本的Java浏览器可能使用了Swing组件来构建UI。Swing也是Java的标准GUI库,提供了一套丰富的组件,如JFrame、JButton、JLabel等。 3. **网络编程**:浏览器需要与Web...
Java浏览器课程设计是一门深入探讨如何使用Java编程语言构建一个功能完备的Web浏览器的实践性课程。这个项目旨在让学生理解网络通信的基本原理,掌握Java GUI(图形用户界面)设计,并了解浏览器背后的复杂工作流程...
【标题】:“Java浏览器课件及程序”是一个学习资源包,专为初学者提供Java编程与浏览器相关的知识。这个资源包包含了一系列文档和课件,旨在帮助初入Java开发领域的人快速掌握基础知识。 【描述】:“对入门级java...
压缩包中的文件名"java浏览器调用ie内核-1、java浏览器调用ie内核-简单"可能代表了实现此功能的不同版本或步骤。"1"可能是基础实现,而"简单"可能是简化后的版本。这些文件可能包含Java源代码、配置文件或者相关的...
Java浏览器控件是一种技术,允许Java应用程序嵌入和交互与Web内容,类似于在桌面应用中使用Web浏览器的功能。本主题将深入探讨通过JNI(Java Native Interface)实现的Java浏览器控件,这是一种Java与本地操作系统...
UC Java浏览器是一款专为Java平台设计的移动浏览器,它提供了高效、便捷的互联网浏览体验。这个集合包含了UC浏览器的各个历史版本,对于开发者和用户来说,这是一个宝贵的资源库,可以追溯浏览器的发展历程,或者在...
【JAVA浏览器小实例】是一个适合课程设计的简单项目,它为初学者提供了了解和实践JAVA编程语言在网络应用方面的基础知识。这个实例通常会涵盖以下几个关键知识点: 1. **JAVA基础**:首先,理解JAVA编程的基本语法...
Java实现内置浏览器是一种技术实践,它允许开发者在Java应用程序中集成一个Web浏览器组件,使得用户可以在应用程序内部浏览网页,提供类似桌面应用的体验。这种方式通常使用JavaFX或Swing库来构建用户界面,并通过...
"JAVA浏览器" 本文将围绕JAVA浏览器的开发和设计展开讨论,涵盖了浏览器的基本功能、面向对象编程、网络编程方法、模型建立、网页浏览器设计等多个方面的知识点。 一、浏览器的基本功能 浏览器是我们在互联网上...
2. 兼容性:Java浏览器可能无法很好地支持某些基于HTML5的新特性和标准,因为它们主要依赖于Java技术栈。 3. 使用普及度:由于Java插件需要用户手动安装,且现代浏览器逐渐移除对Java插件的支持,Java浏览器的使用...
里面包含xulrunner java浏览器 swing浏览器 awt浏览器 所有工程源码 均包含在里面 jar一律齐全 不像其他分享源码的作者 不分享jar包出来 导致参考源码需要找很多jar 无疑给参考者浪费了很多宝贵时间,如果大 家觉得...
Java浏览器是一种基于Java技术实现的网络浏览工具,它利用Java平台的强大功能,提供了一种不同于传统Web浏览器的体验。在Java编程环境中,开发者可以利用Java的跨平台特性,创建一个能够在任何支持Java运行环境的...
java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java...
Java浏览器是Java编程环境中用于显示和交互Web内容的软件组件,它允许开发者在Java应用程序中嵌入网页浏览功能。在本资源中,我们关注的是使用Swing库来实现这一目标,Swing是Java Foundation Classes (JFC)的一部分...
4. **JavaScript执行**:Java浏览器需要支持JavaScript,这通常通过JavaScript引擎实现,比如开源的Rhino或Nashorn。JavaScript引擎负责解释和执行JS代码,与网页交互,实现动态效果和用户交互。 5. **渲染引擎**:...
2. JavaScript引擎:Java浏览器通常会包含一个JavaScript引擎,如OpenJDK的HotSpot或Mozilla的Rhino,用于执行网页中的JavaScript代码。JavaScript引擎使浏览器能够与用户交互、处理动态内容和执行服务器请求。 3. ...
标签"java-cef"、"Java浏览器"和"java谷歌"暗示了这个项目是关于Java环境下利用CEF实现的浏览器功能,特别强调了与谷歌技术的结合。因此,开发者应当熟悉Java编程,了解CEF框架,以及谷歌的Web技术标准。在实践中,...