📄 querypanel.java
字号:
package pcdiysystem.Panel;
import java.awt.*;
import java.awt.event.ItemEvent;
import pcdiysystem.Dao.MotherboardsDAO;
import pcdiysystem.Dao.ProcessorsDAO;
import javax.swing.JTable;
import javax.swing.table.JTableHeader;
import javax.swing.table.DefaultTableModel;
import javax.swing.ListSelectionModel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import java.util.Vector;
import pcdiysystem.Panel.TableModelOfCellDiseditable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import pcdiysystem.Panel.ComponentListPanel_tabComData_mouseAdapter;
/**
* <p>Title: 自助装机系统</p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author kamiiiyu
* @version 1.0
*/
public class QueryPanel
extends EditPanel {
DefaultTableModel queryTableModel;
JTable tabQuery;
JTableHeader tahQuery;
JTextField txtKeyword = new JTextField(40);
JButton btnQuery = new JButton("查找");
JLabel lblInformation = new JLabel();
JComboBox cboSelection;
public QueryPanel() {
try {
jbInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
pnlBottom.removeAll();
txtKeyword.setText("请输入查找关键字");
txtKeyword.requestFocus(true);
Object [] selection={"and","or"};
cboSelection=new JComboBox(selection);
pnlBottom.add(txtKeyword);
pnlBottom.add(cboSelection);
pnlBottom.add(btnQuery);
pnlBottom.add(lblInformation);
btnQuery.addActionListener(new QueryPanel_btnQuery_actionAdapter(this));
txtKeyword.addFocusListener(new QueryPanel_txtKeyword_focusAdapter(this));
for (int i = 0; i < cboManufacturer.getItemListeners().length; i++) {
cboManufacturer.removeItemListener(cboManufacturer.getItemListeners()[i]);
}
}
void creatNewComponentTable(String manufacturer) {
int index = cboComponents.getSelectedIndex();
Vector colName = new Vector();
Vector cellData = new Vector();
switch (index) {
case 0:
colName.add("型号");
colName.add("主频");
colName.add("前端总线");
colName.add("接口类型");
colName.add("库存");
colName.add("价格");
break;
case 1: {
break;
}
case 2: {
colName.add("型号");
colName.add("CPU插槽类型");
colName.add("北桥芯片");
colName.add("支持CPU类型");
colName.add("支持显卡标准");
colName.add("库存");
colName.add("价格");
}
}
queryTableModel = new TableModelOfCellDiseditable();
tabQuery = new JTable(cellData, colName);
for (int i = 0; i < colName.size(); i++) {
tabQuery.getColumnModel().getColumn(i).setPreferredWidth(150);
}
tabQuery.getColumnModel().getColumn(3).setPreferredWidth(200);
tabQuery.setAutoResizeMode(tabQuery.AUTO_RESIZE_OFF);
tabQuery.setDragEnabled(false);
tabQuery.getTableHeader().setReorderingAllowed(false);
scpListOfComponent.getViewport().add(tabQuery);
}
void creatNewComponentTable(Vector cellData) {
int index = cboComponents.getSelectedIndex();
Vector colName = new Vector();
switch (index) {
case 0:
colName.add("型号");
colName.add("主频");
colName.add("前端总线");
colName.add("接口类型");
colName.add("库存");
colName.add("价格");
break;
case 1: {
break;
}
case 2: {
colName.add("型号");
colName.add("CPU插槽类型");
colName.add("北桥芯片");
colName.add("支持CPU类型");
colName.add("支持显卡标准");
colName.add("硬件描述");
colName.add("库存");
colName.add("价格");
}
}
queryTableModel = new TableModelOfCellDiseditable();
queryTableModel.setDataVector(cellData, colName);
tabQuery = new JTable(queryTableModel);
tabQuery.addMouseListener(new ComponentListPanel_tabComData_mouseAdapter(this));
for (int i = 0; i < colName.size(); i++) {
tabQuery.getColumnModel().getColumn(i).setPreferredWidth(150);
}
tabQuery.getColumnModel().getColumn(3).setPreferredWidth(200);
tabQuery.setAutoResizeMode(tabQuery.AUTO_RESIZE_OFF);
tabQuery.setDragEnabled(false);
tabQuery.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
tabQuery.getTableHeader().setReorderingAllowed(false);
scpListOfComponent.getViewport().add(tabQuery);
}
public void btnQuery_actionPerformed(ActionEvent e) {
int index = cboComponents.getSelectedIndex();
String text = txtKeyword.getText();
if (!text.trim().equals("") && !text.equals("请输入查找关键字")) {
switch (index) {
case 0: {
JOptionPane.showMessageDialog(this, "测试中");
break;
}
case 1: {
JOptionPane.showMessageDialog(this, "测试中");
break;
}
case 2: {
String[] keywords = text.trim().split(" ");
MotherboardsDAO md = new MotherboardsDAO();
int mod=this.cboSelection.getSelectedIndex();
Vector cellData = md.getDataInblurQuery(keywords,mod);
if (cellData.size() != 0) {
this.creatNewComponentTable(cellData);
lblInformation.setText("总共找到" + cellData.size() + "条相关记录");
}
else {
JOptionPane.showMessageDialog(this, "数据库没有相关记录");
this.creatNewComponentTable(String.valueOf(cboManufacturer.getSelectedItem()));
this.lblInformation.setText("");
}
}
break;
}
}
else {
JOptionPane.showMessageDialog(this, "请输入查询关键字");
}
}
public void txtKeyword_focusGained(FocusEvent e) {
txtKeyword.selectAll();
}
public void tabComData_mouseClicked(MouseEvent e) {
if (e.getClickCount() == 1 && e.getButton() == e.BUTTON1) {
int row = tabQuery.getSelectedRow();
String text = String.valueOf(tabQuery.getValueAt(row, 5));
String[] words = text.split("/");
txtDetail.setText("");
for (int i = 0; i < words.length; i++) {
txtDetail.append(words[i] + "\n");
}
}
}
public void cboComponents_itemStateChanged(ItemEvent itemEvent) {
this.inserToCboManufacturer();
this.creatNewComponentTable("");
}
}
class QueryPanel_btnQuery_actionAdapter
implements ActionListener {
private QueryPanel adaptee;
QueryPanel_btnQuery_actionAdapter(QueryPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btnQuery_actionPerformed(e);
}
}
class QueryPanel_txtKeyword_focusAdapter
extends FocusAdapter {
private QueryPanel adaptee;
QueryPanel_txtKeyword_focusAdapter(QueryPanel adaptee) {
this.adaptee = adaptee;
}
public void focusGained(FocusEvent e) {
adaptee.txtKeyword_focusGained(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -