📄 showcomponentpanel.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 + -