?? phonebook.java
字號:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import javax.sql.rowset.*;
public class PhoneBook extends JFrame{
private Container container;
private static MainPanel panel1;
private static NamePanel panel2;
private static JList list;
private static String name[];
private DbOperation db;
private static CachedRowSet crs;
private DealPanel dealPanel;
private JMenuBar menuBar;
private JMenu fileMenu,operationMenu,aboutMenu;
private JMenuItem exitItem,addItem,deleteItem,sumItem,aboutItem;
public PhoneBook(){
super("我的電話本");
db = new DbOperation();
BorderLayout b = new BorderLayout();
b.setHgap(15);
b.setVgap(5);
//創建菜單
menuBar = new JMenuBar();
fileMenu = new JMenu("文件");
exitItem = new JMenuItem("退出");
exitItem.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
System.exit(0);
}
}
);
fileMenu.add(exitItem);
operationMenu = new JMenu("操作");
addItem = new JMenuItem("添加聯系人");
addItem.addActionListener(new Add());
deleteItem = new JMenuItem("刪除聯系人");
deleteItem.addActionListener(new Delete());
sumItem = new JMenuItem("統計聯系人數");
sumItem.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
JOptionPane.showMessageDialog(container,"您的電話本中有"+String.valueOf(name.length)+"個聯系人","統計聯系人數",JOptionPane.INFORMATION_MESSAGE);
}
}
);
operationMenu.add(addItem);
operationMenu.add(deleteItem);
operationMenu.add(sumItem);
aboutMenu = new JMenu("關于");
aboutItem = new JMenuItem("關于電話本");
aboutItem.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
JOptionPane.showMessageDialog(container,"歡迎使用\n該電話本由李建新,姚仲編寫","關于電話本",JOptionPane.INFORMATION_MESSAGE);
}
}
);
aboutMenu.add(aboutItem);
menuBar.add(fileMenu);
menuBar.add(operationMenu);
menuBar.add(aboutMenu);
menuBar.setVisible(true);
panel1 = new MainPanel();
panel1.setEditable(false,false);
container = getContentPane();
container.setLayout(b);
setJMenuBar(menuBar);
container.add(panel1);
dealPanel = new DealPanel();
panel2 = new NamePanel();
list = panel2.getNameList();
name = panel2.getListName();
list.addListSelectionListener(
new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e){
panel1.setEditable(false,false);
dealPanel.setAlterButtonText("修改");
String sql = "SELECT * FROM 聯系方式 WHERE name ='"+getSelectedText()+"'";
try{
crs = db.executeQuery(sql);
crs.next();
String str1 = crs.getString("name");
String str2 = crs.getString("num1");
String str3 = crs.getString("num2");
String str4 = crs.getString("num3");
String str5 = crs.getString("mail");
String str6 = crs.getString("QQ");
String str7 = crs.getString("workunit");
String str8 = crs.getString("address");
panel1.setFieldText(str1,str2,str3,str4,str5,str6,str7,str8);
}
catch(Exception er){}
}
}
);
container.add(panel2,BorderLayout.WEST);
container.add(new SearchPanel(),BorderLayout.NORTH);
container.add(dealPanel,BorderLayout.SOUTH);
container.add(new JPanel(),BorderLayout.EAST);
pack();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = getSize();
setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
}
public static JList getList(){
return list;
}
public static String[] getNumName(){
return name;
}
public static NamePanel getNamePanel(){
return panel2;
}
public static MainPanel getMainPanel(){
return panel1;
}
public static String getSelectedText(){
String str = "";
if(list.getSelectedIndex()!=-1)
str = name[list.getSelectedIndex()];
return str;
}
public static void refresh(){
name = panel2.getAllName();
}
class Delete implements ActionListener{
public Delete(){
}
public void actionPerformed(ActionEvent event){
int index = -1;
list = PhoneBook.getNamePanel().getNameList();
index = list.getSelectedIndex();
if(index!=-1){
int option = JOptionPane.showConfirmDialog(container,"真的要刪除嗎?","添加聯系人",JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE);
if(option == JOptionPane.OK_OPTION){
String dname = PhoneBook.getSelectedText();
String sql = "DELETE FROM 聯系方式 WHERE NAME ='"+dname+"'";
db.executeUpdate(sql);
try{
name = PhoneBook.getNamePanel().getAllName();
list.setSelectedIndex(0);
PhoneBook.getMainPanel().setFieldText("","","","","","","","");
list.setListData(name);
}
catch(Exception e){}
}
}
else{
JOptionPane.showMessageDialog(container,"必須先選定才能刪除!","提示",JOptionPane.INFORMATION_MESSAGE);
}
}
}
class Add implements ActionListener{
private MainPanel npanel;
public Add(){
npanel = new MainPanel();
npanel.setEditable(true,true);
}
public void actionPerformed(ActionEvent event){
npanel.setFieldText("","","","","","","","");
int option = JOptionPane.showConfirmDialog(container,npanel,"添加聯系人",JOptionPane.OK_CANCEL_OPTION,JOptionPane.PLAIN_MESSAGE);
if(option == JOptionPane.OK_OPTION){
String nameKey = npanel.getNameText();
if(nameKey.equals("")){
JOptionPane.showMessageDialog(container,"您必須輸入姓名","提示",JOptionPane.INFORMATION_MESSAGE);
}
else{
String num1 = npanel.getNum1Text();
String num2 = npanel.getNum2Text();
String num3 = npanel.getNum3Text();
String mail = npanel.getMailText();
String qq = npanel.getQqText();
String workunit = npanel.getWorkunitText();
String address = npanel.getAddressText();
String sql = "INSERT INTO 聯系方式 VALUES('"+nameKey+"','"+num1+"','"+num2+"','"+num3+"','"+mail+"','"+qq+"','"+workunit+"','"+address+"')";
db.executeUpdate(sql);
name = panel2.getAllName();
list.setListData(name);
}
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -