📄 carddetailpanel.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package cardmanager;import java.awt.BorderLayout;import java.awt.Color;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import javax.swing.BorderFactory;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JRadioButton;import javax.swing.JTextField;/** * * @author zhaolin */public class CardDetailPanel extends JPanel { private JTextField jtfName; private JTextField jtfAddress; private JTextField jtfTel; private JTextField jtfMail; private JRadioButton jrbFavor; private JRadioButton jrbDegree; private JButton jbAppend; private JButton jbClear; private JLabel jlName; private JLabel jlAddress; private JLabel jlTel; private JLabel jlMail; public CardDetailPanel() { initComponent(); } /** * 设置状态 * @param status */ public void setStatus(int status) { switch (status) { case CardManagerModel.NEW_CARDS: //启用编辑 setEditersEnabled(true); //清空原有卡片内容 clearEditers(); break; case CardManagerModel.VIEW_CARDS: //禁用编辑 setEditersEnabled(false); break; } } /** * 设置是否启用编辑 * @param status */ public void setEditersEnabled(boolean status) { jtfName.setEnabled(status); jtfAddress.setEnabled(status); jtfTel.setEnabled(status); jtfMail.setEnabled(status); jbAppend.setEnabled(status); jbClear.setEnabled(status); jlName.setEnabled(status); jlAddress.setEnabled(status); jlTel.setEnabled(status); jlMail.setEnabled(status); } /** * 清空编辑组件(为新添加卡片做准备) */ public void clearEditers() { jtfName.setText(""); jtfAddress.setText(""); jtfTel.setText(""); jtfMail.setText(""); jrbFavor.setSelected(true); } /** * 将卡片对象中的信息显示 * @param detail 卡片详细信息 */ public void setCardDetail(ICardDetail detail) { jtfName.setText(detail.getName()); jtfAddress.setText(detail.getAddress()); jtfTel.setText(detail.getTel()); jtfMail.setText(detail.getMail()); } void reloadCardsInfo() { Card currentCard = CardManagerModel.getInstance().getCurrentCard(); setCardDetail(currentCard); } private void initComponent() { this.setBorder(BorderFactory.createTitledBorder("名片详细信息")); this.setLayout(new BorderLayout()); JPanel jpControl = new JPanel(); FlowLayout fl = new FlowLayout(); fl.setHgap(10); fl.setVgap(2); jpControl.setLayout(fl); JPanel jpDetail = new JPanel(); jpDetail.setLayout(new GridLayout(4, 0, 6, 2)); jlName = new JLabel("姓名:", JLabel.RIGHT); jlAddress = new JLabel("地址:", JLabel.RIGHT); jlTel = new JLabel("联系电话:", JLabel.RIGHT); jlMail = new JLabel("电子邮件:", JLabel.RIGHT); jtfName = new JTextField(); jtfAddress = new JTextField(); jtfTel = new JTextField(); jtfMail = new JTextField(); jrbFavor = new JRadioButton("爱好"); jrbDegree = new JRadioButton("学历"); jrbFavor.setSelected(true); jrbFavor.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if(jrbFavor.isSelected()){ CardManagerModel.getInstance().setAttachmentStatus(CardManagerModel.FAVOR); ((CardManagerFrame)getTopLevelAncestor()).fireAttachmentStateChanged(); } } }); jrbDegree.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if(jrbDegree.isSelected()){ CardManagerModel.getInstance().setAttachmentStatus(CardManagerModel.DEGREE); ((CardManagerFrame)getTopLevelAncestor()).fireAttachmentStateChanged(); } } }); ButtonGroup bg = new ButtonGroup(); bg.add(jrbFavor); bg.add(jrbDegree); jbAppend = new JButton("添加"); jbClear = new JButton("清空"); jbAppend.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { CardManagerModel model = CardManagerModel.getInstance(); Card currentCard = model.getCurrentCard(); currentCard.setName(jtfName.getText()); currentCard.setAddress(jtfAddress.getText()); currentCard.setTel(jtfTel.getText()); currentCard.setMail(jtfMail.getText()); CardManagerModel.getInstance().appendNewCard(currentCard); model.setCurrentCard(new Card()); ((CardManagerFrame)getTopLevelAncestor()).fireStateChanged(); } }); jbClear.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { CardManagerModel model = CardManagerModel.getInstance(); model.setCurrentCard(new Card()); ((CardManagerFrame)getTopLevelAncestor()).fireStateChanged(); } }); jpDetail.add(jlName); jpDetail.add(jtfName); jpDetail.add(jlAddress); jpDetail.add(jtfAddress); jpDetail.add(jlTel); jpDetail.add(jtfTel); jpDetail.add(jlMail); jpDetail.add(jtfMail); jpControl.add(jrbFavor); jpControl.add(jrbDegree); jpControl.add(jbAppend); jpControl.add(jbClear); this.add(jpDetail); this.add(jpControl, "South"); } public static void main(String[] args) { JFrame f = new JFrame(); f.setContentPane(new CardDetailPanel()); f.pack(); f.setVisible(true); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -