package frame; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JInternalFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import utils.EditorUtils; import utils.LinkmanListTabelModel; import action.LinkmanEventAction; public class AddLinkManFrame extends JInternalFrame implements ActionListener, DocumentListener { private JTextField emailAdressTF = null, nickNameTF = null, nameTF = null; private JLabel nameLabel = null, nickNameLabel = null, emailAdressLabel = null; private JButton add = null, delete = null, ok = null, cancel = null; private JScrollPane linkmanJSP; private JTable linkmanList = null;// 联系人列表 private JPanel editorJPanel = null;// 编辑面板 private JPanel linkManListJPanel = null;// 联系人列表面板 private Box baseBox = null, boxV1 = null, boxV2 = null; private LinkmanEventAction linkmanEvent = null; public AddLinkManFrame() { super("添加联系人"); this.setFrameIcon(EditorUtils.createIcon("addLinkman.jpg")); setClosable(true); setIconifiable(true); setBounds(20, 10, 500, 385); getContentPane().setLayout(new BorderLayout()); // 姓名 nameLabel = new JLabel(); nameLabel.setText("姓名:"); getContentPane().add(nameLabel); nameTF = new JTextField(50); getContentPane().add(nameTF); // 昵称 nickNameLabel = new JLabel(); nickNameLabel.setText("昵称:"); getContentPane().add(nickNameLabel); nickNameTF = new JTextField(50); getContentPane().add(nickNameTF); // 电子邮件 emailAdressLabel = new JLabel(); emailAdressLabel.setText("电子邮件:"); getContentPane().add(emailAdressLabel); emailAdressTF = new JTextField(50); emailAdressTF.getDocument().addDocumentListener(this); linkmanList = new JTable();// 联系人列表 linkmanList.setModel(new LinkmanListTabelModel()); linkmanJSP = new JScrollPane(linkmanList); linkmanJSP.setPreferredSize(new Dimension(400, 150)); add = new JButton("添加"); add.addActionListener(this); add.setEnabled(false); delete = new JButton("删除"); delete.addActionListener(this); ok = new JButton("确定"); ok.addActionListener(this); cancel = new JButton("取消"); cancel.addActionListener(this); // 添加联系人面板 editorJPanel = new JPanel(); editorJPanel.setBorder(BorderFactory.createTitledBorder("添加联系人:")); editorJPanel.add(box()); this.add(editorJPanel, BorderLayout.NORTH); // 添加删除联系人面板 JPanel addAadDeletePanel = new JPanel(); addAadDeletePanel.setPreferredSize(new Dimension(60, 150)); addAadDeletePanel.add(add); addAadDeletePanel.add(new JLabel(" ")); addAadDeletePanel.add(delete); // 联系人列表面板 JPanel linkmanPanel = new JPanel(); linkmanPanel.add(linkmanJSP); linkManListJPanel = new JPanel(new BorderLayout()); linkManListJPanel.setBorder(BorderFactory.createTitledBorder("联系人列表:")); linkManListJPanel.add(linkmanPanel, BorderLayout.CENTER); linkManListJPanel.add(addAadDeletePanel, BorderLayout.EAST); this.add(linkManListJPanel, BorderLayout.CENTER); // 确定取消面板 JPanel okAndCancelPanel = new JPanel(); okAndCancelPanel.setPreferredSize(new Dimension(500, 35)); okAndCancelPanel.add(ok); okAndCancelPanel.add(new JLabel(" ")); okAndCancelPanel.add(cancel); this.add(okAndCancelPanel, BorderLayout.SOUTH); setVisible(true); linkmanEvent = new LinkmanEventAction(nameTF, nickNameTF, emailAdressTF, linkmanList); } private Box box() { // 创建标签box boxV1 = Box.createVerticalBox(); boxV1.add(nameLabel); boxV1.add(Box.createVerticalStrut(10)); boxV1.add(nickNameLabel); boxV1.add(Box.createVerticalStrut(14)); boxV1.add(emailAdressLabel); boxV1.add(Box.createVerticalStrut(12)); // 创建文本框box boxV2 = Box.createVerticalBox(); boxV2.add(nameTF); boxV2.add(Box.createVerticalStrut(8)); boxV2.add(nickNameTF); boxV2.add(Box.createVerticalStrut(8)); boxV2.add(emailAdressTF); // 创建基本box baseBox = Box.createHorizontalBox(); baseBox.add(boxV1); baseBox.add(Box.createHorizontalStrut(20)); baseBox.add(boxV2); boxV2.add(Box.createVerticalStrut(8)); return baseBox; } public void changedUpdate(DocumentEvent e) { checkInput();// 文本更新时调用 } public void insertUpdate(DocumentEvent e) { checkInput();// 插入更新 } public void removeUpdate(DocumentEvent e) { checkInput();// 移除更新 } // 检测输入数据的有效性 private void checkInput() { boolean checkEmail = EditorUtils.checkEmailAdress(emailAdressTF .getText().trim()); if (checkEmail) { add.setEnabled(true); } else { add.setEnabled(false); } } // 事件的处理 @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == add) { linkmanEvent.addLinkman();// 添加联系人 } else if (e.getSource() == delete) { linkmanEvent.deleteLinkman(linkmanList.getSelectedRow());// 删除联系人 } else if (e.getSource() == ok) { linkmanEvent.ok(); } else if (e.getSource() == cancel) { this.dispose();// 关闭窗口 } } }
![](https://static.zuidaima.com/resource/img/heart_ico.png)
annazhang LV29
2023年4月7日
微信网友_6191697646571520 LV6
2022年11月24日
伊不归 LV6
2022年4月20日
1029162867 LV13
2021年12月25日
Aoifee LV4
2021年11月11日
linhe27 LV7
2021年3月20日
ming_123_9715 LV23
2021年3月6日
85489354756a LV3
2021年3月6日
gaohd123456789 LV8
2020年12月5日
aataibao LV1
2020年8月16日
![](https://static.zuidaima.com/resource/img/cattle_ico.png)
gao123456789 LV6
2月7日
Wky123456
2023年11月2日
暂无贡献等级
hbsoft2008 LV16
2023年10月19日
EFWAGGFAWGR
2023年10月19日
暂无贡献等级
2036495585 LV9
2023年9月26日
qiqi123456 LV1
2023年9月21日
LongTory LV2
2023年6月6日
dmyafda LV5
2023年3月26日
Tuxxxxx LV3
2023年1月3日
微信网友_6191697646571520 LV6
2022年11月24日