java 浏览器2

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
[email protected]
num=50
from=
pass=pass

Tree.properties

server1=[01]±±¾©
server2=[02]ÇàÔÆ
server3=[03]²ýƽ
server4=[04]Î÷³Ç



 

你可能感兴趣的:(java,thread,浏览器,swing,IE)