⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe.java

📁 使用JavaMail开发的具有发送、接收邮件的应用
💻 JAVA
字号:
/* * MainFrame.java * * Created on 2008年7月23日, 下午5:15 */package hjx.recvmail;import java.awt.Dimension;import java.awt.Point;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.Enumeration;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.DefaultListModel;import javax.swing.JList;import javax.swing.JMenuItem;/** * * @author  hujx */public class MainFrame extends javax.swing.JFrame {    private DefaultListModel listModel = new DefaultListModel();        /** Creates new form MainFrame */    public MainFrame() {        initComponents();                read();        JMenuItem menuItem = new JMenuItem("新增Account");        menuItem.addActionListener(new ActionListener() {                public void actionPerformed(ActionEvent e) {                    listModel.addElement(new MailAccount("test"));                }                    });        jPopupMenu1.add(menuItem);                // Center the dialog at the center of screen        int nWndWidth = getWidth();        int nWndHeight = getHeight();                Toolkit kit = Toolkit.getDefaultToolkit();        Dimension dim = kit.getScreenSize();        setBounds((dim.width - nWndWidth) / 2, (dim.height - nWndHeight) / 2,                nWndWidth, nWndHeight);    }        private void read() {        try {            ObjectInputStream in = new ObjectInputStream(new FileInputStream("recvaccount.dat"));            int i, nCount = in.readInt();            for (i = 0; i < nCount; i++) {                MailAccount account = (MailAccount)in.readObject();                listModel.addElement(account);            }            in.close();        } catch (Exception ex) {            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);        }    }    private void save() {        try {            ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("recvaccount.dat"));            out.writeInt(listModel.getSize());            Enumeration accounts = listModel.elements();            while (accounts.hasMoreElements())                out.writeObject(accounts.nextElement());            out.close();        } catch (Exception ex) {            ex.printStackTrace();        }    }    /** This method is called from within the constructor to     * initialize the form.     * WARNING: Do NOT modify this code. The content of this method is     * always regenerated by the Form Editor.     */    @SuppressWarnings("unchecked")    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents    private void initComponents() {        jPopupMenu1 = new javax.swing.JPopupMenu();        jSplitPane1 = new javax.swing.JSplitPane();        jScrollPane1 = new javax.swing.JScrollPane();        lstAccount = new JList(listModel);        jPanel1 = new javax.swing.JPanel();        jLabel1 = new javax.swing.JLabel();        txtHost = new javax.swing.JTextField();        jLabel3 = new javax.swing.JLabel();        txtUserName = new javax.swing.JTextField();        jLabel4 = new javax.swing.JLabel();        txtPass = new javax.swing.JPasswordField();        jButton1 = new javax.swing.JButton();        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);        jSplitPane1.setDividerLocation(100);        jSplitPane1.setDividerSize(3);        jSplitPane1.setAutoscrolls(true);        lstAccount.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseClicked(java.awt.event.MouseEvent evt) {                lstAccountMouseClicked(evt);            }            public void mouseReleased(java.awt.event.MouseEvent evt) {                lstAccountMouseReleased(evt);            }        });        lstAccount.addListSelectionListener(new javax.swing.event.ListSelectionListener() {            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {                lstAccountValueChanged(evt);            }        });        jScrollPane1.setViewportView(lstAccount);        jSplitPane1.setLeftComponent(jScrollPane1);        jLabel1.setText("POP3 host:");        jLabel3.setText("User Name:");        jLabel4.setText("Password:");        jButton1.setText("保存");        jButton1.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jButton1ActionPerformed(evt);            }        });        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);        jPanel1.setLayout(jPanel1Layout);        jPanel1Layout.setHorizontalGroup(            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(jPanel1Layout.createSequentialGroup()                .addContainerGap()                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)                    .addGroup(jPanel1Layout.createSequentialGroup()                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)                                    .addComponent(jLabel4)                                    .addComponent(jLabel3))                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)                                    .addComponent(txtPass, javax.swing.GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)                                    .addComponent(txtUserName, javax.swing.GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)))                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()                                .addComponent(jLabel1)                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                .addComponent(txtHost, javax.swing.GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)))                        .addGap(28, 28, 28))                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()                        .addComponent(jButton1)                        .addGap(18, 18, 18))))        );        jPanel1Layout.setVerticalGroup(            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(jPanel1Layout.createSequentialGroup()                .addContainerGap()                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)                    .addComponent(jLabel1)                    .addComponent(txtHost, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)                    .addComponent(jLabel3)                    .addComponent(txtUserName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)                    .addComponent(jLabel4)                    .addComponent(txtPass, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 254, Short.MAX_VALUE)                .addComponent(jButton1)                .addContainerGap())        );        jSplitPane1.setRightComponent(jPanel1);        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());        getContentPane().setLayout(layout);        layout.setHorizontalGroup(            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addComponent(jSplitPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 427, Short.MAX_VALUE)        );        layout.setVerticalGroup(            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addComponent(jSplitPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 378, Short.MAX_VALUE)        );        pack();    }// </editor-fold>//GEN-END:initComponentsprivate void lstAccountMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lstAccountMouseReleased// TODO add your handling code here:    if (evt.isPopupTrigger()) {        Point point = evt.getPoint();        jPopupMenu1.show(this, point.x, point.y);    }}//GEN-LAST:event_lstAccountMouseReleasedprivate void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed// TODO add your handling code here:    if (lstAccount.getSelectedIndex() >= 0) {        MailAccount  account = (MailAccount) listModel.get(lstAccount.getSelectedIndex());        account.host = txtHost.getText();        account.userName = txtUserName.getText();        account.passWord = String.valueOf(txtPass.getPassword());    }        lstAccount.repaint();        save();    }//GEN-LAST:event_jButton1ActionPerformedprivate void lstAccountValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstAccountValueChanged// TODO add your handling code here:    MailAccount  account = (MailAccount) listModel.get(lstAccount.getSelectedIndex());    txtHost.setText(account.host);    txtUserName.setText(account.userName);    txtPass.setText(account.passWord);}//GEN-LAST:event_lstAccountValueChangedprivate void lstAccountMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lstAccountMouseClicked// TODO add your handling code here:    if (!evt.isPopupTrigger() && evt.getClickCount() == 2) {        MailAccount account = (MailAccount) listModel.get(lstAccount.getSelectedIndex());        JavaMailFrame mailFrame = new JavaMailFrame(account);        mailFrame.setVisible(true);    }}//GEN-LAST:event_lstAccountMouseClicked    // Variables declaration - do not modify//GEN-BEGIN:variables    private javax.swing.JButton jButton1;    private javax.swing.JLabel jLabel1;    private javax.swing.JLabel jLabel3;    private javax.swing.JLabel jLabel4;    private javax.swing.JPanel jPanel1;    private javax.swing.JPopupMenu jPopupMenu1;    private javax.swing.JScrollPane jScrollPane1;    private javax.swing.JSplitPane jSplitPane1;    private javax.swing.JList lstAccount;    private javax.swing.JTextField txtHost;    private javax.swing.JPasswordField txtPass;    private javax.swing.JTextField txtUserName;    // End of variables declaration//GEN-END:variables}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -