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

📄 assetsel2panel.java

📁 固定资产管理
💻 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 + -