📄 componentlistpanel.java
字号:
package pcdiysystem.Panel;
import java.awt.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.BorderLayout;
import java.util.Vector;
import pcdiysystem.Dao.ProcessorsDAO;
import pcdiysystem.Dao.MotherboardsDAO;
import pcdiysystem.Dao.ManuOfMotDAO;
import pcdiysystem.Dao.ManuOfProDAO;
import pcdiysystem.Dao.MemoryDAO;
import pcdiysystem.Dao.ManuOfMemDAO;
import java.awt.Font;
import pcdiysystem.Panel.DIYPanel;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.table.TableColumn;
import javax.swing.table.JTableHeader;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseMotionAdapter;
import pcdiysystem.Dao.DefaultProjectDAO;
/**
* <p>Title: 自助装机系统</p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author kamiiiyu
* @version 1.0
*/
public class ComponentListPanel
extends JPanel {
BorderLayout borderLayout1 = new BorderLayout();
JScrollPane scpListOfComponent = new JScrollPane();
JPanel pnlTitle = new JPanel(new GridLayout(1, 4));
JPanel pnlBottom = new JPanel(new FlowLayout());
JPanel pnlBottomContainer = new JPanel(new BorderLayout());
JTextArea txtDetail = new JTextArea(5, 50);
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 dtComponent;
DefaultTableModel dtCellDisEditable;
Vector selectedRecord;
ProjectPanel pnlRight;
public ComponentListPanel() {
try {
jbInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
}
public ComponentListPanel(ProjectPanel pnlRight) {
try {
this.pnlRight = pnlRight;
jbInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
this.setLayout(borderLayout1);
txtDetail.setEditable(false);
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
ComponentListPanel_cboComponents_itemAdapter(this));
cboManufacturer.addItemListener(new
ComponentListPanel_cboManufacturer_itemAdapter(this));
btnSelect.addActionListener(new ComponentListPanel_btnSelect_actionAdapter(this));
btnCancel.addActionListener(new ComponentListPanel_btnCancel_actionAdapter(this));
pnlTitle.add(lblComponents);
pnlTitle.add(cboComponents);
pnlTitle.add(lblManufacturer);
pnlTitle.add(cboManufacturer);
pnlBottom.add(btnSelect);
pnlBottom.add(btnCancel);
pnlBottomContainer.add(pnlBottom, BorderLayout.CENTER);
pnlBottomContainer.add(txtDetail, BorderLayout.NORTH);
pnlBottomContainer.add(new JLabel("硬件细节"), BorderLayout.WEST);
this.add(pnlBottomContainer, BorderLayout.SOUTH);
this.creatNewComponentTable("Intel");
this.add(scpListOfComponent, java.awt.BorderLayout.CENTER);
this.add(pnlTitle, java.awt.BorderLayout.NORTH);
}
public 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.setSelectedIndex(0);
}
public ComponentListPanel getCurrentObject() {
return this;
}
public 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;
}
case 3: {
Vector temp = (new ManuOfMemDAO()).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,
MotherboardsDAO.COMPONENTLISTPANEL);
colName.add("型号");
colName.add("CPU插槽类型");
colName.add("北桥芯片");
colName.add("支持CPU类型");
colName.add("支持显卡标准");
colName.add("硬件描述");
colName.add("库存");
colName.add("价格");
break;
}
case 3: {
MemoryDAO md = new MemoryDAO();
cellData = md.getBaseInfomation(manufacturer);
colName.add("型号");
colName.add("类型");
colName.add("容量");
colName.add("总线频率");
colName.add("硬件描述");
colName.add("库存");
colName.add("价格");
break;
}
}
/*
dtComponent=new DefaultTableModel(cellData,colName);
tabComData=new JTable(dtComponent);
*/
//构造可编辑单元格的表格
dtCellDisEditable = new TableModelOfCellDiseditable();
dtCellDisEditable.setDataVector(cellData, colName);
tabComData = new JTable(dtCellDisEditable);
tabComData.addMouseMotionListener(new
ComponentListPanel_tabComData_mouseMotionAdapter(this));
tabComData.addMouseListener(new ComponentListPanel_tabComData_mouseAdapter(this));
for (int i = 0; i < colName.size(); i++) {
tabComData.getColumnModel().getColumn(i).setPreferredWidth(150);
}
tabComData.getColumnModel().getColumn(3).setPreferredWidth(200);
tabComData.setAutoResizeMode(tabComData.AUTO_RESIZE_OFF);
tabComData.setDragEnabled(false);
tabComData.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
if(cellData.size()!=0){
tabComData.setRowSelectionInterval(0, 0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -