📄 searchframe.java
字号:
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;
public class SearchFrame extends JFrame implements ActionListener,ItemListener {
JPanel main_panel;
JPanel up_panel;
JPanel mid_panel;
JPanel down_panel;
JButton bt;
JButton return_button;
JLabel up_lb;
JLabel name_lb;
JTextField name_tf;
Checkbox up_cb;
Checkbox down_cb;
JTable table;
Object[] columnName = {"姓名","电话","地址"};
Object[][] data = {};
DefaultTableModel tm;
ArrayList array = new ArrayList();
static boolean flag = true;
public SearchFrame(ArrayList array){
super("查询页面!");
this.array = array;
Border line = BorderFactory.createLineBorder(Color.red);
TitledBorder title1 = BorderFactory.createTitledBorder(line,"信息查询",0,0);
TitledBorder title2 =BorderFactory.createTitledBorder(line,"查询结果",0,0);
main_panel = new JPanel(new GridLayout(3,1));
main_panel.setBorder(title1);
up_panel = new JPanel();
mid_panel = new JPanel();
down_panel = new JPanel(new GridLayout(2,1));
down_panel.setBorder(title2);
JPanel d1_panel = new JPanel();
name_lb = new JLabel("请输入要查询的用户名: ");
name_tf = new JTextField(10);
//排序
CheckboxGroup gr = new CheckboxGroup();
up_cb = new Checkbox("升序",gr,false);
down_cb = new Checkbox("降序",gr,false);
up_cb.addItemListener(this);
down_cb.addItemListener(this);
//按钮
bt = new JButton("查询");
return_button = new JButton("返回");
bt.addActionListener(this);
return_button.addActionListener(this);
mid_panel.add(name_lb);
mid_panel.add(name_tf);
mid_panel.add(bt);
mid_panel.add(return_button);
tm = new DefaultTableModel(data,columnName);
table = new JTable(tm);
d1_panel.add(up_cb);
d1_panel.add(down_cb);
JScrollPane d2_panel = new JScrollPane(table,20,30);
down_panel.add(d1_panel);
down_panel.add(d2_panel);
//main_panel.add(up_panel);
main_panel.add(mid_panel);
main_panel.add(down_panel);
add(main_panel);
//pack();
setSize(400,500);
setLocation(250,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
String name;
name = name_tf.getText();
table = new JTable(tm);
Customer cc;
int array_size = this.array.size();
/**
* 返回
*/
if(e.getActionCommand().equals("返回")){
flag = false;
new MainFrame(array);
this.dispose();
}
/**
* 查询
*/
if(e.getActionCommand().equals("查询")){
flag = true;
//tm = new DefaultTableModel(data,columnName);
for(int i =0 ;i<array_size;i++){
cc = (Customer)this.array.get(i);
System.out.println(cc.getName());
String c_name = cc.getName();
if(c_name.indexOf(name)>=0){
System.out.println(c_name.indexOf(name));
Object[] c = {cc.getName(),cc.getTel(),cc.getAddress()};
tm.addRow(c);
flag = false;
}
}
table = new JTable(tm);
}
if(flag){
JOptionPane.showMessageDialog(this,"没有找到你需要的信息","提示",JOptionPane.ERROR_MESSAGE);
}
}
public void itemStateChanged(ItemEvent e1) {
int array_size = this.array.size();
if(e1.getItem().equals("升序")){
Object key = null;
Object value = null;
System.out.println("升序");
Map myMap = new HashMap();
for(int i = 0; i<array_size;i++){
Customer cc = (Customer)this.array.get(i);
myMap.put(Integer.parseInt(cc.getTel()),cc.getName()+" "+cc.getAddress());
}
Map treeMap = new TreeMap(myMap);
Iterator it = treeMap.keySet().iterator();
while(it.hasNext()){
key = it.next();
value = treeMap.get(key);
System.out.println("key: "+key+" value: "+value);
}
}
if(e1.getItem().equals("降序")){
Object key = null;
Object value = null;
System.out.println("降序");
Map myMap = new HashMap();
for(int i = 0; i<array_size;i++){
Customer cc = (Customer)this.array.get(i);
myMap.put(Integer.parseInt(cc.getTel()),cc.getName()+" "+cc.getAddress());
}
Map newtreemap = new TreeMap(new MyIntComparator());
newtreemap.putAll(myMap);
Map.Entry entry = null;
Iterator it = newtreemap.entrySet().iterator();
while(it.hasNext()){
entry = (Map.Entry)it.next();
System.out.println("key: "+entry.getKey()+" value: "+entry.getValue());
}
}
}
public static void main(String[] args){
//new SearchFrame();
}
class MyIntComparator implements Comparator{
public int compare(Object o1, Object o2) {
int i1 = ((Integer)o1).intValue();
int i2 = ((Integer)o2).intValue();
if(i1<i2){
return 1;
}
if(i1>i2){
return -1;
}
return 0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -