📄 mainframe.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 + -