📄 assetsel2panel.java
字号:
package stage_project;
import java.awt.*;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.table.JTableHeader;
import java.util.ArrayList;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.table.TableModel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2008</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class AssetSel2Panel extends JPanel {
public AssetSel2Panel() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
ImageIcon img = new ImageIcon("xiubei.gif");
JLabel lblBeijing = new JLabel(img);
private void jbInit() throws Exception {
this.setLayout(null);
setSize(new Dimension(960, 600));
jTree1.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
jTree1.setBorder(BorderFactory.createLineBorder(Color.black));
jTree1.setBounds(new Rectangle(14, 144, 302, 340));
jTree1.addTreeSelectionListener(new
AssetSel2Panel_jTree1_treeSelectionAdapter(this));
jTable1.setBorder(BorderFactory.createLineBorder(Color.black));
jTable1.setBounds(new Rectangle(326, 160, 597, 320));
jTableHeader2.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
jTableHeader2.setBorder(BorderFactory.createLineBorder(Color.black));
jTableHeader2.setBounds(new Rectangle(328, 140, 595, 19));
jButton2.setBounds(new Rectangle(570, 500, 71, 25));
jButton2.setFont(new java.awt.Font("Dialog", Font.PLAIN, 13));
jButton2.setText("刷 新");
jButton2.addActionListener(new AssetSel2Panel_jButton2_actionAdapter(this));
lblBeijing.setIcon(img);
lblBeijing.setBounds(new Rectangle(0, 0, 960, 600));
this.add(jTree1);
this.add(jTableHeader2);
this.add(jTable1);
this.add(jButton2);
this.createTree();
this.add(lblBeijing);
}
//JTree
DefaultMutableTreeNode root = new DefaultMutableTreeNode("类别");
JTree jTree1 = new JTree(root); //根据节点构建jTree
//JTable
String[] colNames = {"资产名称", "样 式", "价 格", "购入日期", "状 态",
"借 用 人", "是否归还"};
String[][] data = new String[20][7];
JTable jTable1 = new JTable(data, colNames);
JButton btnRefresh = new JButton();
JTableHeader jTableHeader1 = jTable1.getTableHeader();
JTableHeader jTableHeader2 = jTable1.getTableHeader();
JButton jButton2 = new JButton(); //私有方法,用添加树节点的方式,更新jTree
private void createTree() {
root.removeAllChildren();
//获得所有枝节点及叶节点
String sql = "select catename from category group by catename";
DBAccess db = new DBAccess();
ArrayList arr1 = db.getId(sql);
ArrayList arry = new ArrayList();
for (int i = 0; i < arr1.size(); i++) {
arry.add(arr1.get(i));
}
for (int i = 0; i < arry.size(); i++) {
DefaultMutableTreeNode parent = new DefaultMutableTreeNode(arry.get(
i).toString()); //构建枝节点
//获得所有子类
sql = "select subcatename from category where catename='" +
arry.get(i).toString() + "'";
ArrayList classArry = db.getId(sql);
for (int j = 0; j < classArry.size(); j++) {
DefaultMutableTreeNode leaf = new DefaultMutableTreeNode(
classArry.
get(j)); //构建叶节点
parent.add(leaf); //添加叶节点到枝
}
root.add(parent); //添加枝节点到根
}
this.jTree1.updateUI(); //更新jTree
}
//jTree的事件处理方法
public void jTree1_valueChanged(TreeSelectionEvent e) {
TableModel tm = jTable1.getModel();
DBAccess db = new DBAccess();
for (int i = 0; i < tm.getRowCount(); i++)
for (int j = 0; j < tm.getColumnCount(); j++)
tm.setValueAt("", i, j); //设置jTable中各单元格显示内容为“”
//获取用户选中的节点
DefaultMutableTreeNode node = (DefaultMutableTreeNode) jTree1.
getLastSelectedPathComponent();
if (node.isLeaf()) { //是叶节点,则在jTable中显示所有
String str = node.toString();
//获取选中叶节点id号
String sql = "select subcateid from category where subcatename='" +
str + "'";
ArrayList id = db.getId(sql);
//获取asset表中信息
String sql1 = "select asset_name,model,price,purchase_date,status from asset where subcateid='" +
id.get(0).toString() + "'";
//读取信息,在jTable的单元格中显示
ArrayList arry2 = db.chaxun2(sql1,5);
for (int i = 0; i < arry2.size(); i++) {
ArrayList tmpArr = (ArrayList) arry2.get(i);//读取信息,在jTable的单元格中显示
for(int j=0 ;j<5;j++){
tm.setValueAt(tmpArr.get(j), i, j);
}
}
//获取lend表中信息
String sql2 = "select assetid from asset where subcateid='" +
id.get(0).toString() + "'";
ArrayList aid = db.getId(sql2);
if (aid.size() < 1) {
tm.setValueAt("", 1, 5);
tm.setValueAt("", 1, 6);
} else {
for (int i = 0; i < aid.size(); i++) {
String sql3 =
"select empno,isreturn from lend where assetid='" +
aid.get(i).toString() + "'";
ArrayList arry3 = db.chaxun(sql3, 2);
if (arry3.size() < 1) {
tm.setValueAt("", 1, 5);
tm.setValueAt("", 1, 6);
} else {
String sql4 =
"select ename from employee where empno='" +
arry3.get(0).toString() + "'";
ArrayList arry4 = db.chaxun(sql4, 1);
tm.setValueAt(arry4.get(0), i, 5);
tm.setValueAt(arry3.get(1), i, 6);
}
}
}
//更新jTable
jTable1.updateUI();
}else{
return;
}
}
//刷新事件
public void jButton2_actionPerformed(ActionEvent e) {
this.createTree();
}
}
class AssetSel2Panel_jButton2_actionAdapter implements ActionListener {
private AssetSel2Panel adaptee;
AssetSel2Panel_jButton2_actionAdapter(AssetSel2Panel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton2_actionPerformed(e);
}
}
class AssetSel2Panel_jTree1_treeSelectionAdapter implements
TreeSelectionListener {
private AssetSel2Panel adaptee;
AssetSel2Panel_jTree1_treeSelectionAdapter(AssetSel2Panel adaptee) {
this.adaptee = adaptee;
}
public void valueChanged(TreeSelectionEvent e) {
adaptee.jTree1_valueChanged(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -