📄 cardmanagermodel.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package cardmanager;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.DefaultListModel;/** * * @author zhaolin */public class CardManagerModel { //两种状态(新名片和查看名片) public static final int NEW_CARDS = 0; public static final int VIEW_CARDS = 1; //两种附加信息状态(爱好和学历) public static final int FAVOR = 0; public static final int DEGREE = 1; //单态模式共享对象 private static CardManagerModel model; //列表模型 private DefaultListModel listModel; //序列化存储文件 private String cardsFile; //当前的状态 private int status; //附加信息状态 private int attachmentStatus; //当前显示的卡片 private Card currentCard; public String getCardsFile() { return cardsFile; } public void setCardsFile(String cardsFile) { this.cardsFile = cardsFile; } public Card getCurrentCard() { return currentCard; } public void setCurrentCard(Card currentCard) { this.currentCard = currentCard; } public int getStatus() { return status; } public void setStatus(int status) { this.status = status; } public static CardManagerModel getInstance() { if (model == null) { model = new CardManagerModel(); } return model; } private CardManagerModel() { listModel = new DefaultListModel(); cardsFile = "cards.obj"; currentCard = new Card(); loadSavedCards(); } public DefaultListModel getListModel() { return listModel; } public void setListModel(DefaultListModel listModel) { this.listModel = listModel; } /** * 添加新名片 * @param card 新名片 */ public void appendNewCard(Card card) { listModel.addElement(card); saveCards(); } /** * 加载名片信息 */ private void loadSavedCards() { ObjectInputStream ois = null; try { File file = new File(cardsFile); if(!file.exists()){ return; } ois = new ObjectInputStream(new FileInputStream(file)); Object [] cards = (Object [])ois.readObject(); listModel.clear(); for (int i = 0; i < cards.length; i++) { Object object = cards[i]; listModel.addElement(object); } } catch (ClassNotFoundException ex) { Logger.getLogger(CardManagerModel.class.getName()).log(Level.SEVERE, null, ex); } catch (FileNotFoundException ex) { Logger.getLogger(CardManagerModel.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(CardManagerModel.class.getName()).log(Level.SEVERE, null, ex); } finally { try { if(ois!=null) ois.close(); } catch (IOException ex) { Logger.getLogger(CardManagerModel.class.getName()).log(Level.SEVERE, null, ex); } } } /** * 持久存储名片信息 */ private void saveCards() { ObjectOutputStream oos = null; try { File file = new File(cardsFile); if(!file.exists()){ file.createNewFile(); } oos = new ObjectOutputStream(new FileOutputStream(file)); Object [] cards = new Object[listModel.getSize()]; listModel.copyInto(cards); oos.writeObject(cards); } catch (FileNotFoundException ex) { Logger.getLogger(CardManagerModel.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(CardManagerModel.class.getName()).log(Level.SEVERE, null, ex); } finally { try { if(oos!=null) oos.close(); } catch (IOException ex) { Logger.getLogger(CardManagerModel.class.getName()).log(Level.SEVERE, null, ex); } } } public int getAttachmentStatus() { return attachmentStatus; } public void setAttachmentStatus(int attachmentStatus) { this.attachmentStatus = attachmentStatus; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -