package com.dangdang.serach;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class MainFrame extends JFrame implements ActionListener {
private DataSearch ds;
private JScrollPane sPanel;
private Vector vecResult;
private JPanel panel;
private JLabel lab1;
private JButton SerchBtn;
private JButton CreateIndexBtn;
private JTextField txt;
private JCheckBox checkBox;
private JTextArea area;
public MainFrame(String file) {
super();
this.setTitle("dangdang data search");
// set position and size
this.setBounds(300, 300, 800, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
// init
mainInit();
ds = new DataSearch(file);
vecResult = new Vector();
}
/**
* init the swing form
*/
public void mainInit() {
panel = new JPanel();
lab1 = new JLabel("please input name:");
lab1.setBounds(30, 10, 200, 30);
SerchBtn = new JButton("search");
SerchBtn.setBounds(440, 10, 80, 30);
SerchBtn.addActionListener(this);
CreateIndexBtn = new JButton("create index file");
CreateIndexBtn.setBounds(600, 10, 150, 30);
CreateIndexBtn.addActionListener(this);
txt = new JTextField();
txt.setBounds(150, 10, 270, 30);
checkBox = new JCheckBox("index");
checkBox.setBounds(530, 10, 70, 30);
area = new JTextArea();
area = new JTextArea("");
area.setVisible(true);
sPanel = new JScrollPane();
sPanel.getViewport().add(area);
sPanel.setBounds(7, 45, 780, 400);
panel.add(lab1);
panel.add(txt);
panel.add(sPanel);
panel.add(checkBox);
panel.add(SerchBtn);
panel.add(CreateIndexBtn);
panel.setLayout(null);
this.add(panel);
}
public void actionPerformed(ActionEvent event) {
if (event.getSource() == SerchBtn) //
{
String searchName = txt.getText().trim();
if (searchName.length() < 2) {
JOptionPane.showMessageDialog(null,
"please enter the corrent name!");
return;
}
long start = System.currentTimeMillis();
area.setText("");
try {
if (checkBox.isSelected()) {
vecResult = ds.selectUseIndex(searchName);
} else {
vecResult = ds.select(searchName);
}
} catch (IOException e) {
e.printStackTrace();
}
for (int i = 0; i < vecResult.size(); i++) {
area.append(vecResult.get(i) + "\n");
}
long end = System.currentTimeMillis();
String tmp = "Total records��" + vecResult.size()
+ "��consuming time:" + (end - start) + "ms";
JOptionPane.showMessageDialog(null, tmp);
} else if (event.getSource() == CreateIndexBtn) {
try {
long start = System.currentTimeMillis();
ds.createIndexFile();
long end = System.currentTimeMillis();
String tmp = "create index file " + "consuming time:"
+ (end - start) + "ms";
JOptionPane.showMessageDialog(null, tmp);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}