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

📄 searchpanel.java

📁 java telephone notebook
💻 JAVA
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.text.PlainDocument; 
import javax.sql.rowset.*;

public class SearchPanel extends JPanel{
	private JRadioButton nameButton,numButton;
	private JTextField inputField;
	private JButton searchButton;
	private ButtonGroup group;
	private JList list;
	private String name[];
	private DbOperation db;
	private CachedRowSet crs;
	
	public SearchPanel(){
		setLayout(new FlowLayout());
		nameButton = new JRadioButton("姓名搜索");
		nameButton.setSelected(true);
		nameButton.addActionListener(
			new ActionListener(){
				public void actionPerformed(ActionEvent e){
					inputField.setText("");
					inputField.setDocument(new PlainDocument());
				}
			}
		);
		numButton = new JRadioButton("号码搜索");
		numButton.addActionListener(
			new ActionListener(){
				public void actionPerformed(ActionEvent e){
					inputField.setText("");
					inputField.setDocument(new NumOnly());
				}
			}
		);
		group = new ButtonGroup();
		group.add(nameButton);
		group.add(numButton);
		
		inputField = new JTextField(15);
		inputField.addActionListener(new Search());
		searchButton = new JButton("搜索");
		searchButton.setMnemonic('F');
		searchButton.setToolTipText("可按Alt+F进行搜索");
		searchButton.addActionListener(new Search());
		
		add(nameButton);
		add(numButton);
		add(inputField);
		add(searchButton);
		
		list = PhoneBook.getList();
		name = PhoneBook.getNumName();
		db = new DbOperation();
	}
	
	class Search implements ActionListener{
		private DbOperation db;
		private String searchItem;
		
		public Search(){
			db = new DbOperation();
		}
		public void actionPerformed(ActionEvent event){
			name = PhoneBook.getNumName();
			searchItem = inputField.getText().trim();
			if(searchItem.equals(""))
				JOptionPane.showMessageDialog(null,"请先输入再进行搜索!","信息提示",JOptionPane.WARNING_MESSAGE);
			else{
				int i = 0;
				if(nameButton.isSelected()){
					for(i=0;i<name.length;i++)
						if(name[i].equals(searchItem)){
							list.setSelectedIndex(i);
							break;
						}
					if(i==name.length && !name[i-1].equals(searchItem))
						JOptionPane.showMessageDialog(null,"没有找到您要的信息","信息提示",JOptionPane.WARNING_MESSAGE);
				}
				else{
					try{
						crs = db.executeQuery("SELECT NAME FROM 联系方式 WHERE NUM1 ='"+searchItem+"'");
						if(crs.size()==0)
							crs = db.executeQuery("SELECT NAME FROM 联系方式 WHERE NUM2 ='"+searchItem+"'");
						if(crs.size()==0)
							crs = db.executeQuery("SELECT NAME FROM 联系方式 WHERE NUM3 ='"+searchItem+"'");
							
						if(crs.size()==0)
							JOptionPane.showMessageDialog(null,"没有找到您要的信息!","信息提示",JOptionPane.WARNING_MESSAGE);
						else{
							crs.next();
							String sname = crs.getString("NAME");
							for(i=0;i<name.length;i++)
								if(name[i].equals(sname)){
									list.setSelectedIndex(i);
									break;
								}
						}
					}
					catch(Exception e){
						JOptionPane.showMessageDialog(null,"搜索时发生错误!","错误提示",JOptionPane.ERROR_MESSAGE);
					};
				}
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -