通讯录bean.java
来自「个人开发的数字助理」· Java 代码 · 共 453 行
JAVA
453 行
package 通讯录;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Hashtable;
import java.util.Vector;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import java.awt.GridBagLayout;
import java.awt.FlowLayout;
import javax.swing.border.SoftBevelBorder;
public class 通讯录Bean extends JPanel implements ActionListener {
JTextArea jText5;
JButton 删除日志;
JButton 保存日志;
Hashtable table; // @jve:decl-index=0:
JPanel pSouth = new JPanel();
File file;
private JPanel jPanel = null;
private JScrollPane jScrollPane1 = null;
Hashtable hashtable = new Hashtable(); // @jve:decl-index=0:
private JTextField jText1 = null;
DefaultTableModel dm = null;
private JTable friends;
private JLabel jLabel1 = null;
private JLabel jLabel2 = null;
private JTextField jText2 = null;
private JLabel jLabel3 = null;
private JTextField jText2_1 = null;
private JLabel jLabel4 = null;
private JTextField jText3 = null;
private JLabel jLabel5 = null;
private JTextField jText4 = null;
private JLabel jLabel6 = null;
private JPanel jPanel1 = null;
private int j = 0;
private boolean 是否添加行 = true;
public static Vector 关键字列表 = new Vector(); // @jve:decl-index=0:
public static int keyArrayCurson = 0;
// ----------------------------------------------------------------------------------------------------------------------------------------
public 通讯录Bean()
{
initialize();
}
/**
* This method initializes this
*/
private void initialize() {
// this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
final Object[] columnNames = { "姓名", "Email", "家庭地址",// 列名最好用final修饰
"电话号码", "备注" };
Object[][] rowData = {
{ "冯浩", "fenghao@126.com", "山东青岛", "1378313210", "学生" },
{ "冯浩", "fenghao@126.com", "山东青岛", "1378313210", "学生" },
{ "冯浩", "fenghao@126.com", "山东青岛", "1378313210", "学生" },
{ "冯浩", "fenghao@126.com", "山东青岛", "1378313210", "学生" },
{ "冯浩", "fenghao@126.com", "山东青岛", "1378313210", "学生" },
};
dm = new DefaultTableModel(rowData, columnNames);
friends = new JTable(dm);
// friends.setBounds(new Rectangle(54, 345, 375, 80));
setLayout(null);
this.setSize(new Dimension(452, 508));
file = new File("通讯录1.txt");
if (!file.exists())
{
try
{
FileOutputStream out = new FileOutputStream(file);
ObjectOutputStream objectOut = new ObjectOutputStream(
out);
objectOut.writeObject(hashtable);
objectOut.close();
out.close();
} catch (IOException e)
{
}
}
else
// System.out.print("文件已存在!");
// for (int cnt = 0; cnt < 关键字列表.size(); cnt++)
// for(int k=0;k<=5;k++)
// {
获取日志内容(关键字列表.get(1).toString(), 0);
// 获取日志内容(关键字列表.get(k).toString() + 2, 1);
// 获取日志内容(关键字列表.get(k).toString() + 3, 2);
// 获取日志内容(关键字列表.get(k).toString() + 4, 3);
// 获取日志内容(关键字列表.get(k).toString() + 5, 4);
// }
jText5 = new JTextArea(10, 10);
jText5.setLineWrap(true);
保存日志 = new JButton("保存日志");
保存日志.setBounds(new Rectangle(66, 8, 86, 28));
删除日志 = new JButton("删除日志");
删除日志.setBounds(new Rectangle(264, 9, 86, 28));
保存日志.addActionListener(this);
删除日志.addActionListener(this);
pSouth.setLayout(new BoxLayout(pSouth, BoxLayout.X_AXIS));
pSouth.setName("pSouth");
pSouth.setBounds(new Rectangle(78, 158, 335, 53));
pSouth.add(jText5, null);
pSouth.add(getJScrollPane1(), null);
this.add(getJPanel(), null);
JScrollPane pane3 = new JScrollPane(friends);
pane3.setBounds(new Rectangle(26, 339, 407, 197));
this.add(pane3, null);
this.add(getJPanel1(), null);
}
// ----------------------------------------------------------------------------------------------------------------------------------------
public void actionPerformed(ActionEvent e) {
if (e.getSource() == 保存日志)
{
保存日志();
System.out.println(friends.getRowCount());
j++;
// if (j == friends.getRowCount()-1)
// if (是否添加行 == true)
// {
dm.addRow(new Object[] { jText1.getText(),
jText2.getText(), jText3.getText(),
jText4.getText(), jText5.getText() });
是否添加行 = false;
// }
}
else if (e.getSource() == 删除日志)
{
删除日志(jText1.getText());
}
}
public void 保存日志() {
保存日志(jText1.getText(), jText1.getText());
保存日志(jText2.getText() + "@" + jText2_1.getText(), jText1.getText() + 2);
保存日志(jText3.getText(), jText1.getText() + 3);
保存日志(jText4.getText(), jText1.getText() + 4);
保存日志(jText5.getText(), jText1.getText() + 5);
获取日志内容(jText1.getText(), 0);
获取日志内容(jText1.getText() + 2, 1);
获取日志内容(jText1.getText() + 3, 2);
获取日志内容(jText1.getText() + 4, 3);
获取日志内容(jText1.getText() + 5, 4);
}
// ----------------------------------------------------------------------------------------------------------------------------------------
public void 设置文本区(String s) {
jText5.setText(s);
}
// ----------------------------------------------------------------------------------------------------------------------------------------
public void 获取日志内容(String key, int i) {
try
{
FileInputStream inOne = new FileInputStream(file);
ObjectInputStream inTwo = new ObjectInputStream(inOne);
table = (Hashtable) inTwo.readObject();
inOne.close();
inTwo.close();
} catch (Exception ee)
{
}
if (table.containsKey(key))
{
friends.setValueAt((String) table.get(key), j, i);
}
else
{
jText5.setText("无记录");
是否添加行 = false;
}
}
// ----------------------------------------------------------------------------------------------------------------------------------------
public void 保存日志(String 日志内容, String flag) {
// String 日志内容 = text.getText();
// String key = "" + year + "" + month + "" + day;
String key = flag;
关键字列表.add(flag);
try
{
FileInputStream inOne = new FileInputStream(file);
ObjectInputStream inTwo = new ObjectInputStream(inOne);
table = (Hashtable) inTwo.readObject();
inOne.close();
inTwo.close();
table.put(key, 日志内容);
FileOutputStream out = new FileOutputStream(file);
ObjectOutputStream objectOut = new ObjectOutputStream(out);
objectOut.writeObject(table);
objectOut.close();
out.close();
} catch (Exception ee)
{
}
}
// ----------------------------------------------------------------------------------------------------------------------------------------
public void 删除日志(String flag) {
String key = flag;
if (table.containsKey(key))
{
String m = "删除" + flag + "吗?";
int ok = JOptionPane
.showConfirmDialog(this, m, "询问",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (ok == JOptionPane.YES_OPTION)
{
try
{
FileInputStream inOne = new FileInputStream(
file);
ObjectInputStream inTwo = new ObjectInputStream(
inOne);
table = (Hashtable) inTwo.readObject();
inOne.close();
inTwo.close();
table.remove(key);
FileOutputStream out = new FileOutputStream(
file);
ObjectOutputStream objectOut = new ObjectOutputStream(
out);
objectOut.writeObject(table);
objectOut.close();
out.close();
jText5.setText(null);
} catch (Exception ee)
{
}
}
}
else
{
String m = "" + flag + "无日志记录";
JOptionPane.showMessageDialog(this, m, "提示",
JOptionPane.WARNING_MESSAGE);
}
}
// ----------------------------------------------------------------------------------------------------------------------------------------
/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel() {
if (jPanel == null)
{
jLabel6 = new JLabel();
jLabel6.setBounds(new Rectangle(18, 175, 41, 18));
jLabel6.setText("备注:");
jLabel5 = new JLabel();
jLabel5.setBounds(new Rectangle(22, 128, 32, 23));
jLabel5.setText("QQ:");
jLabel4 = new JLabel();
jLabel4.setBounds(new Rectangle(4, 80, 65, 22));
jLabel4.setText("家庭住址;");
jLabel3 = new JLabel();
jLabel3.setBounds(new Rectangle(253, 36, 13, 22));
jLabel3.setText("@");
jLabel2 = new JLabel();
jLabel2.setBounds(new Rectangle(14, 36, 46, 21));
jLabel2.setText("Email:");
jLabel1 = new JLabel();
jLabel1.setBounds(new Rectangle(16, 5, 43, 24));
jLabel1.setText("姓名:");
jPanel = new JPanel();
jPanel.setLayout(null);
jPanel.setName("jPanel");
jPanel.setBounds(new Rectangle(15, 12, 422, 221));
jPanel.setBorder(new SoftBevelBorder(SoftBevelBorder.LOWERED));
jPanel.add(getJText1(), null);
jPanel.add(pSouth, null);
jPanel.add(jLabel1, null);
jPanel.add(jLabel2, null);
jPanel.add(getJTex2(), null);
jPanel.add(jLabel3, null);
jPanel.add(getJText2_1(), null);
jPanel.add(jLabel4, null);
jPanel.add(getJText3(), null);
jPanel.add(jLabel5, null);
jPanel.add(getJText4(), null);
jPanel.add(jLabel6, null);
}
return jPanel;
}
/**
* This method initializes jScrollPane1
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane1() {
if (jScrollPane1 == null)
{
jScrollPane1 = new JScrollPane(jText5);
jScrollPane1.setName(null);
}
return jScrollPane1;
}
/**
* This method initializes jText1
*
* @return javax.swing.JTextField
*/
private JTextField getJText1() {
if (jText1 == null)
{
jText1 = new JTextField();
jText1.setBounds(new Rectangle(81, 6, 164, 22));
}
return jText1;
}
/**
* This method initializes jTex2
*
* @return javax.swing.JTextField
*/
private JTextField getJTex2() {
if (jText2 == null)
{
jText2 = new JTextField();
jText2.setBounds(new Rectangle(81, 36, 162, 22));
}
return jText2;
}
/**
* This method initializes jText2_1
*
* @return javax.swing.JTextField
*/
private JTextField getJText2_1() {
if (jText2_1 == null)
{
jText2_1 = new JTextField();
jText2_1.setBounds(new Rectangle(269, 36, 93, 23));
}
return jText2_1;
}
/**
* This method initializes jText3
*
* @return javax.swing.JTextField
*/
private JTextField getJText3() {
if (jText3 == null)
{
jText3 = new JTextField();
jText3.setBounds(new Rectangle(79, 65, 283, 52));
}
return jText3;
}
/**
* This method initializes jText4
*
* @return javax.swing.JTextField
*/
private JTextField getJText4() {
if (jText4 == null)
{
jText4 = new JTextField();
jText4.setBounds(new Rectangle(77, 127, 125, 24));
}
return jText4;
}
/**
* This method initializes jPanel1
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel1() {
if (jPanel1 == null)
{
jPanel1 = new JPanel();
jPanel1.setLayout(null);
jPanel1.setBounds(new Rectangle(14, 242, 421, 42));
jPanel1.setBorder(new SoftBevelBorder(SoftBevelBorder.LOWERED));
jPanel1.add(删除日志, null);
jPanel1.add(保存日志, null);
}
return jPanel1;
}
/**
* This method initializes jComboBox
*
* @return javax.swing.JComboBox
*/
} // @jve:decl-index=0:visual-constraint="21,6"
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?