📄 searchpanel.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 + -