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

📄 mainframe.java

📁 一个简单的通讯录
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                            .add(lblCellphone, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 18, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(txtCellphone, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                        .add(28, 28, 28)
                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                            .add(lblEMail, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 18, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(txtEmail, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                        .add(35, 35, 35))
                    .add(layout.createSequentialGroup()
                        .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 282, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)))
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(btnNew)
                    .add(btnSave)
                    .add(btnFind)
                    .add(btnDelete))
                .addContainerGap())
        );
        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void txtEmailCaretUpdate(javax.swing.event.CaretEvent evt) {//GEN-FIRST:event_txtEmailCaretUpdate
// TODO 将在此处添加您的处理代码:
        motified = true;
    }//GEN-LAST:event_txtEmailCaretUpdate

    private void txtCellphoneCaretUpdate(javax.swing.event.CaretEvent evt) {//GEN-FIRST:event_txtCellphoneCaretUpdate
// TODO 将在此处添加您的处理代码:
        motified = true;
    }//GEN-LAST:event_txtCellphoneCaretUpdate

    private void txtPhoneCaretUpdate(javax.swing.event.CaretEvent evt) {//GEN-FIRST:event_txtPhoneCaretUpdate
// TODO 将在此处添加您的处理代码:
        motified = true;
    }//GEN-LAST:event_txtPhoneCaretUpdate

    private void txtAddCaretUpdate(javax.swing.event.CaretEvent evt) {//GEN-FIRST:event_txtAddCaretUpdate
// TODO 将在此处添加您的处理代码:
        motified = true;
    }//GEN-LAST:event_txtAddCaretUpdate

    private void txtZipCaretUpdate(javax.swing.event.CaretEvent evt) {//GEN-FIRST:event_txtZipCaretUpdate
// TODO 将在此处添加您的处理代码:
        motified = true;
    }//GEN-LAST:event_txtZipCaretUpdate

    private void txtNameCaretUpdate(javax.swing.event.CaretEvent evt) {//GEN-FIRST:event_txtNameCaretUpdate
// TODO 将在此处添加您的处理代码:
        motified = true;
    }//GEN-LAST:event_txtNameCaretUpdate

    private void mExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mExitActionPerformed
// TODO 将在此处添加您的处理代码:
      if (giveUp()){
             System.exit(0);
        }
    }//GEN-LAST:event_mExitActionPerformed

    private void nameListMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_nameListMouseClicked
// TODO 将在此处添加您的处理代码:
         //选择浏览
        p = (Person)(nameList.getSelectedValue());
        txtName.setText(p.name);
        txtZip.setText(p.zip);
        txtAdd.setText(p.address);
        txtPhone.setText(p.telephone);
        txtCellphone.setText(p.cellphone);
        txtEmail.setText(p.email);
    }//GEN-LAST:event_nameListMouseClicked

    private void mFindActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mFindActionPerformed
// TODO 将在此处添加您的处理代码:
        find();
    }//GEN-LAST:event_mFindActionPerformed

    private void mDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mDeleteActionPerformed
// TODO 将在此处添加您的处理代码:
        delete();
    }//GEN-LAST:event_mDeleteActionPerformed

    private void mSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mSaveActionPerformed
// TODO 将在此处添加您的处理代码:
        save();
    }//GEN-LAST:event_mSaveActionPerformed

    private void mOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mOpenActionPerformed
// TODO 将在此处添加您的处理代码:
        open();
    }//GEN-LAST:event_mOpenActionPerformed

    private void mNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mNewActionPerformed
// TODO 将在此处添加您的处理代码:
        add();
    }//GEN-LAST:event_mNewActionPerformed

    private void btnNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNewActionPerformed
// TODO 将在此处添加您的处理代码:
        add();
    }//GEN-LAST:event_btnNewActionPerformed

    private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSaveActionPerformed
// TODO 将在此处添加您的处理代码:
        saveEdited();
    }//GEN-LAST:event_btnSaveActionPerformed

    private void mAboutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mAboutActionPerformed
// TODO 将在此处添加您的处理代码:
        JOptionPane.showConfirmDialog(this,"通讯录----蔡永贵设计\n 2007-12-14!","关于",
                JOptionPane.DEFAULT_OPTION,
                JOptionPane.INFORMATION_MESSAGE);
    }//GEN-LAST:event_mAboutActionPerformed

    private void btnFindActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnFindActionPerformed
// TODO 将在此处添加您的处理代码:
        find();
    }//GEN-LAST:event_btnFindActionPerformed

    private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDeleteActionPerformed
// TODO 将在此处添加您的处理代码:
        delete();
    }//GEN-LAST:event_btnDeleteActionPerformed
    
    /**
     * @param args the command line arguments
     */
    
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MainFrame().setVisible(true);
            }
        });
    }
    
    //删除记录
    private void delete(){
        people.delete(nameList.getSelectedValue());
        nameList.setListData(people.toArray());
        txtName.setText("");
        txtZip.setText("");
        txtAdd.setText("");
        txtPhone.setText("");
        txtCellphone.setText("");
        txtEmail.setText("");
    }
    
    //查找记录
    private void find(){
        String nam = JOptionPane.showInputDialog("请输入要查询的姓名");
        p = people.find(nam);
        if ( p == null ){
            JOptionPane.showConfirmDialog(this,"查无此人!","查询结果",
                    JOptionPane.DEFAULT_OPTION,
                    JOptionPane.INFORMATION_MESSAGE);
        }else{
            txtName.setText(p.name);
            txtZip.setText(p.zip);
            txtAdd.setText(p.address);
            txtPhone.setText(p.telephone);
            txtCellphone.setText(p.cellphone);
            txtEmail.setText(p.email);
        }
    }
    
    //新增记录
    private void add(){
        people.addnew(new Person(txtName.getText(),
                txtZip.getText(),txtAdd.getText(),
                txtPhone.getText(),txtCellphone.getText(),
                txtEmail.getText()));
        nameList.setListData(people.toArray());
    }
    
    //打开文件
    private void open(){
        choice = fileChooser.showOpenDialog(this);
        if (choice == JFileChooser.APPROVE_OPTION) {
            chosenFile = fileChooser.getSelectedFile();
            deserializePeople(chosenFile.getAbsolutePath());
        } 
    }
    
    //保存文件
    private void save(){
        choice = fileChooser.showSaveDialog(this);
        if (choice == JFileChooser.APPROVE_OPTION) {
            chosenFile = fileChooser.getSelectedFile();
            serializePeople(people,chosenFile.getAbsolutePath());
        }
    }
    
    //保存更改的记录
    private void saveEdited(){
        p = (Person)(nameList.getSelectedValue());
        p.name = txtName.getText();
        p.zip = txtZip.getText();
        p.address = txtAdd.getText();
        p.cellphone = txtCellphone.getText();
        p.email = txtEmail.getText();
    }
    
    //串行化people对象数据
    private void serializePeople(People people, String filename) {
        try{
            FileOutputStream outStream = new FileOutputStream(filename);
            ObjectOutputStream out = new ObjectOutputStream(outStream);
            out.writeObject(people);
            out.flush();
            out.close();
        } catch(Exception e) {
            System.out.println(e);
        }
        
    }
    
    //去串行化people对象数据
    private void deserializePeople(String filename) {
        people = null;
        try{
            FileInputStream inStream = new FileInputStream(filename);
            ObjectInputStream in = new ObjectInputStream(inStream);
            people = (People)in.readObject();
            in.close();
            nameList.setListData(people.toArray());
        } catch(Exception e) {
            System.out.println(e);
        }
    }
    
    //纪录改变操作
    boolean giveUp() {
        if (!motified)
             return true; 
        int temp = JOptionPane.showConfirmDialog(this, "通讯录信息" +
                "已经改变!想保存文件吗?", "警告!",
                JOptionPane.YES_NO_CANCEL_OPTION);
        switch (temp) {
            case JOptionPane.YES_OPTION:
                 save();
            case JOptionPane.NO_OPTION:
                return true;
            case JOptionPane.CANCEL_OPTION:
            default:
                return false;
        }
  }
    
    // 变量声明 - 不进行修改//GEN-BEGIN:variables
    private javax.swing.JButton btnDelete;
    private javax.swing.JButton btnFind;
    private javax.swing.JButton btnNew;
    private javax.swing.JButton btnSave;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JLabel lblAdd;
    private javax.swing.JLabel lblCellphone;
    private javax.swing.JLabel lblEMail;
    private javax.swing.JLabel lblName;
    private javax.swing.JLabel lblPhone;
    private javax.swing.JLabel lblZip;
    private javax.swing.JMenuItem mAbout;
    private javax.swing.JMenuItem mDelete;
    private javax.swing.JMenuItem mExit;
    private javax.swing.JMenu mFile;
    private javax.swing.JMenuItem mFind;
    private javax.swing.JMenu mHelp;
    private javax.swing.JMenuItem mNew;
    private javax.swing.JMenuItem mOpen;
    private javax.swing.JMenu mOpt;
    private javax.swing.JMenuItem mSave;
    private javax.swing.JList nameList;
    private javax.swing.JTextField txtAdd;
    private javax.swing.JTextField txtCellphone;
    private javax.swing.JTextField txtEmail;
    private javax.swing.JTextField txtName;
    private javax.swing.JTextField txtPhone;
    private javax.swing.JTextField txtZip;
    // 变量声明结束//GEN-END:variables
    private File chosenFile;
    private int choice;
    private JFileChooser fileChooser = new JFileChooser();
    private Person p;
    private People people = new People();
    boolean motified;
    /*
    void txtEmail_changedUpdate(javax.swing.event.DocumentEvent evt) {
        motified = true;
    }

    private void txtEmail_insertUpdate(javax.swing.event.DocumentEvent evt) {
        motified = true;
    }

    private void txtEmail_removeUpdate(javax.swing.event.DocumentEvent evt) {
        motified = true;
    }
    
    class MainFrame_txtEmail_documentAdapter
      implements javax.swing.event.DocumentListener {
    MainFrame adaptee;

    MainFrame_txtEmail_documentAdapter(MainFrame adaptee) {
      this.adaptee = adaptee;
    }

    public void changedUpdate(javax.swing.event.DocumentEvent evt) {
      adaptee.txtEmail_changedUpdate(evt);
    }

    public void insertUpdate(javax.swing.event.DocumentEvent evt) {
      adaptee.txtEmail_insertUpdate(evt);
    }

    public void removeUpdate(javax.swing.event.DocumentEvent evt) {
      adaptee.txtEmail_removeUpdate(evt);
    }
  }*/
}

⌨️ 快捷键说明

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