⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 phonebook.java

📁 java telephone notebook
💻 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该电话本由Freish编写\n技术交流QQ:544458785","关于电话本",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 + -