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

📄 querypanel.java

📁 些程序用java实现一个装机程序,不过是一个C/S架构,但是在数据库的设计方面与3层架构的构造方案我想对一些朋友还是否有一定的帮助吧
💻 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 + -