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

📄 showcomponentpanel.java~180~

📁 些程序用java实现一个装机程序,不过是一个C/S架构,但是在数据库的设计方面与3层架构的构造方案我想对一些朋友还是否有一定的帮助吧
💻 JAVA~180~
字号:
package pcdiysystem.Panel;

import java.awt.*;
import javax.swing.*;
import java.awt.BorderLayout;
import java.util.ArrayList;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;
import pcdiysystem.Dao.ProcessorsDAO;
import pcdiysystem.Dao.MotherboardsDAO;
import pcdiysystem.Dao.ManuOfMotDAO;
import java.awt.Font;
import java.awt.Dimension;
import pcdiysystem.Dao.ManuOfProDAO;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.table.TableColumn;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellRenderer;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * <p>Title: 自助装机系统</p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: </p>
 *
 * @author kamiiiyu
 * @version 1.0
 */
public class ShowComponentPanel
    extends JPanel {

  BorderLayout borderLayout1 = new BorderLayout();
  JScrollPane scpShowComponent = new JScrollPane();
  JPanel pnlTitle=new JPanel(new GridLayout(1,4));
  JPanel pnlBottom=new JPanel(new FlowLayout());
  JButton btnSelect=new JButton("选用");
  JButton btnCancel=new JButton("取消");
  JLabel lblComponents=new JLabel("电脑配件");
  JLabel lblManufacturer=new JLabel("品牌");
  JComboBox cboComponents = new JComboBox();
  JComboBox cboManufacturer = new JComboBox();
  JTable tabComData;
  DefaultTableModel componentDT;
  Vector selectedRecord;

  public ShowComponentPanel() {
    try {
      jbInit();
    }
    catch (Exception exception) {
      exception.printStackTrace();
    }
  }

  private void jbInit() throws Exception {
    this.setLayout(borderLayout1);
    lblComponents.setFont(new java.awt.Font("宋体", Font.BOLD, 15));
    lblComponents.setText("电 脑 配 件:");
    lblManufacturer.setFont(new java.awt.Font("宋体", Font.BOLD, 15));
    lblManufacturer.setText("  品  牌:");
    this.insertToCboComponents();
    this.inserToCboManufacturer();
    cboComponents.addItemListener(new
                                  ShowComponentPanel_cboComponents_itemAdapter(this));
    cboManufacturer.addItemListener(new
        ShowComponentPanel_cboManufacturer_itemAdapter(this));
    btnSelect.addActionListener(new ShowComponentPanel_btnSelect_actionAdapter(this));
    pnlTitle.add(lblComponents);
    pnlTitle.add(cboComponents);
    pnlTitle.add(lblManufacturer);
    pnlTitle.add(cboManufacturer);
    pnlBottom.add(btnSelect);
    pnlBottom.add(btnCancel);
    this.creatNewComponentTable("Intel");
    /*
    ProcessorsDAO pd=new ProcessorsDAO();
    Vector al=pd.getBaseInfomation("Intel");
    Vector colName=new Vector();
    System.out.println(al.size());
    colName.add("型号");
    colName.add("配置");
    colName.add("价格");
    DefaultTableModel dt=new DefaultTableModel(al,colName);


    //dt.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(new JComboBox()));
    tabComData=new JTable(dt);
    tabComData.setAutoResizeMode(tabComData.AUTO_RESIZE_OFF);
    JCheckBox chb=new JCheckBox();
    //tabComData.getColumnModel().getColumn(3).setCellEditor(new DefaultCellEditor(chb));
    scpShowComponent.getViewport().add(tabComData);
    */
    this.add(scpShowComponent, java.awt.BorderLayout.CENTER);
    this.add(pnlTitle, java.awt.BorderLayout.NORTH);
    this.add(pnlBottom,BorderLayout.SOUTH);
  }

  void insertToCboComponents(){
    cboComponents.addItem("CPU");
    cboComponents.addItem("散热系统");
    cboComponents.addItem("主板");
    cboComponents.addItem("内存");
    cboComponents.addItem("硬盘");
    cboComponents.addItem("显卡");
    cboComponents.addItem("声卡");
    cboComponents.addItem("光驱");
    cboComponents.addItem("显示器");
    cboComponents.addItem("鼠标");
    cboComponents.addItem("键盘");
    cboComponents.addItem("机箱");
    cboComponents.addItem("PC电源");
    cboComponents.addItem("音响");
    cboComponents.addItem("键鼠套装");
    cboComponents.setSelectedIndex(0);
  }

  void inserToCboManufacturer(){
    cboManufacturer.removeAllItems();
    int index=cboComponents.getSelectedIndex();
    switch(index){
      case 0:{
        Vector temp = (new ManuOfProDAO()).getManufacturer();
        for (int i = 0; i < temp.size(); i++) {
          cboManufacturer.addItem(temp.get(i));
        }
        break;
      }
      case 1:{
        break;
      }
      case 2:{
        Vector temp = (new ManuOfMotDAO()).getManufacturer();
        for (int i = 0; i < temp.size(); i++) {
          cboManufacturer.addItem(temp.get(i));
        }
        break;
      }
    }
  }

  void creatNewComponentTable(String manufacturer){
    int index=cboComponents.getSelectedIndex();
    Vector colName=new Vector();
    Vector cellData=new Vector();
    switch(index){
      case 0:
        ProcessorsDAO pd=new ProcessorsDAO();
        cellData=pd.getBaseInfomation(manufacturer);
        colName.add("型号");colName.add("主频");colName.add("前端总线");
        colName.add("接口类型");colName.add("库存");colName.add("价格");
        break;
        case 1:{
          break;
        }
        case 2:{
          MotherboardsDAO md=new MotherboardsDAO();
          cellData=md.getBaseInfomation(manufacturer);
          colName.add("型号");colName.add("CPU插槽类型");colName.add("北桥芯片");
          colName.add("支持CPU类型");colName.add("支持显卡标准");colName.add("库存");
          colName.add("价格");
        }
    }
    componentDT=new DefaultTableModel(cellData,colName);
    tabComData=new JTable(componentDT);
    for(int i=0;i<colName.size();i++){
      tabComData.getColumnModel().getColumn(i).setPreferredWidth(150);
    }
    tabComData.setAutoResizeMode(tabComData.AUTO_RESIZE_OFF);
    tabComData.setRowSelectionInterval(0,0);
    scpShowComponent.getViewport().add(tabComData);
    }

  public void cboComponents_itemStateChanged(ItemEvent itemEvent) {
    this.inserToCboManufacturer();
  }

  public void cboManufacturer_itemStateChanged(ItemEvent e) {
    if(cboManufacturer.getItemCount()!=0){
      this.creatNewComponentTable(String.valueOf(cboManufacturer.
                                                 getSelectedItem()));
    }
  }

  public void btnSelect_actionPerformed(ActionEvent e) {
    selectedRecord=new Vector();
    int rowIndex=this.tabComData.getSelectedRow();
    int lastColumnIndex=this.tabComData.getColumnCount()-1;
    System.out.println(rowIndex);
    selectedRecord.add(this.componentDT.getValueAt(rowIndex,0));
    selectedRecord.add(this.tabComData.getValueAt(rowIndex,lastColumnIndex));
    System.out.println(this.componentDT.getValueAt(rowIndex,0));
    System.out.println(this.tabComData.getValueAt(rowIndex,lastColumnIndex));
    /*
    Object[][] obj={{1,2},{3,4}};
    Object [] objc={'a','b'};
    this.componentDT.setDataVector(obj,objc);
    */
   System.out.println(selectedRecord);
  }
}

class ShowComponentPanel_cboManufacturer_itemAdapter
    implements ItemListener {
  private ShowComponentPanel adaptee;
  ShowComponentPanel_cboManufacturer_itemAdapter(ShowComponentPanel adaptee) {
    this.adaptee = adaptee;
  }

  public void itemStateChanged(ItemEvent e) {
    adaptee.cboManufacturer_itemStateChanged(e);
  }
}

class ShowComponentPanel_btnSelect_actionAdapter
    implements ActionListener {
  private ShowComponentPanel adaptee;
  ShowComponentPanel_btnSelect_actionAdapter(ShowComponentPanel adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.btnSelect_actionPerformed(e);
  }
}

class ShowComponentPanel_cboComponents_itemAdapter
    implements ItemListener {
  private ShowComponentPanel adaptee;
  ShowComponentPanel_cboComponents_itemAdapter(ShowComponentPanel adaptee) {
    this.adaptee = adaptee;
  }

  public void itemStateChanged(ItemEvent itemEvent) {
    adaptee.cboComponents_itemStateChanged(itemEvent);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -