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

📄 memberpane.java~254~

📁 会员管理系统的一个子模块
💻 JAVA~254~
📖 第 1 页 / 共 2 页
字号:
package memberpane;

import java.sql.*;
import java.util.*;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeSelectionModel;

public class MemberPane extends JPanel{
    private JTree tree = null;
    private JTabbedPane tabAbove = new JTabbedPane();
    private JTabbedPane tabDown = new JTabbedPane();
    //表格
    private TableModel tmAbove = new DefaultTableModel();
    private TableModel tmDownL = new DefaultTableModel();
    private TableModel tmDownR = new DefaultTableModel();
    private JTable tableAbove = new JTable();
    private JTable tableDownL = new JTable();
    private JTable tableDownR = new JTable();
    //各滑动面板
    private JScrollPane scrollPaneAbove = new JScrollPane();
    private JScrollPane scrollPaneDownL = new JScrollPane();
    private JScrollPane scrollPaneDownR = new JScrollPane();
    //数据库连接
    private Connection conn;{//连接数据库
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        }
        catch (ClassNotFoundException ex) {
        }
        String dburl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=db.mdb";
        try {
            conn = DriverManager.getConnection(dburl);
        } catch (SQLException ex1) {
        }
    }
    //弹出菜单
    private PopupMenu popupMenu = null;

    /**
     * 构造器
     */
    public MemberPane(){
        this.setLayout(new GridLayout(1,1));
        //左面,包含树的面板
        JScrollPane scrollPaneLeft = new JScrollPane();
        DefaultMutableTreeNode top = new DefaultMutableTreeNode("会员类型");
        createTree(top);
        tree = new JTree(top);
        tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);

        tree.addTreeSelectionListener(new SimpleTreeSelectionListener());

        scrollPaneLeft.add(tree);
        scrollPaneLeft.setBorder(BorderFactory.createLoweredBevelBorder());
        scrollPaneLeft.getViewport().setView(tree);
        this.add(scrollPaneLeft);
        //右面,上下分割面板
        JSplitPane rightPane = new JSplitPane();
        ImageIcon icon = new  ImageIcon("images/middle.gif");
        //初始化表格
        initTables("全部会员");
        //右上表格
        scrollPaneAbove.add(tableAbove);
        scrollPaneAbove.setBorder(BorderFactory.createLoweredBevelBorder());
        scrollPaneAbove.getViewport().setView(tableAbove);
        tabAbove.addTab("会员信息", icon, scrollPaneAbove,"第一个卡片提示信息!");
        tabAbove.setSelectedIndex(0);
        //右上表格,添加弹出菜单
        popupMenu = new MemberPopupMenu(tableAbove);
        this.add(popupMenu);

        this.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                this_mousePressed(e);
            }
        });
        scrollPaneAbove.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                scrollPaneAbove_mousePressed(e);
            }
        });
        tabAbove.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                tabAbove_mousePressed(e);
            }
        });
        tableAbove.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                tableAbove_mousePressed(e);
            }
        });
        //右下,左表格
        scrollPaneDownL.add(tableDownL);
        scrollPaneDownL.setBorder(BorderFactory.createLoweredBevelBorder());
        scrollPaneDownL.getViewport().setView(tableDownL);
        //右下,右表格
        scrollPaneDownR.add(tableDownR);
        scrollPaneDownR.setBorder(BorderFactory.createLoweredBevelBorder());
        scrollPaneDownR.getViewport().setView(tableDownR);
        //右下分割面板
        JSplitPane rightPaneDown = new JSplitPane();
        rightPaneDown.setLeftComponent(scrollPaneDownL);
        rightPaneDown.setRightComponent(scrollPaneDownR);
        rightPaneDown.setDividerLocation(200);
        tabDown.addTab("消费记录", icon, rightPaneDown,"第二个卡片提示信息!");
        tabDown.setSelectedIndex(0);
        //右面板,添加上下两个tappedPane,其中包含表格
        rightPane.setLeftComponent(tabAbove);
        rightPane.setRightComponent(tabDown);
        rightPane.setOrientation(JSplitPane.VERTICAL_SPLIT);
        rightPane.setDividerLocation(250);
        rightPane.setBorder(BorderFactory.createLoweredBevelBorder());
        //分割面板,左右分别添加scrollPaneLeft和rightPane
        JSplitPane splitPane = new JSplitPane();
        splitPane.setLeftComponent(scrollPaneLeft);
        splitPane.setRightComponent(rightPane);
        splitPane.setDividerLocation(120);
        splitPane.setDividerSize(1);
        this.add(splitPane);
    }

    /**
     * 初始化所有表格
     * @param VIPKind String: 根据VIPKind的类型值决定显示哪一部分会员的信息
     */
    private void initTables(String VIPKind){
        //初始化右上表格
        Statement stmt = null;
        ResultSet  rs = null;
        if(VIPKind.equals("全部会员")){
            try {
                stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                            ResultSet.CONCUR_UPDATABLE);
                rs = stmt.executeQuery(
                    "select ID,Name,Sex,MinZu,VIPKind,Birthday,Unit,"
                    + "Address,postcode,Phone,Occu,MovePhone,CertID,Email,"
                    + "VIPID,Valid,Pass,Grade,EnterDate,EndDate,BeginMoney,"
                    + "CurMoney,SumCost,BeginPoints,CurPoints,SumPoints,Mem"
                    + " from VIP");
            }
            catch (SQLException ex) {
            }
        }else{
            try {
                stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                            ResultSet.CONCUR_UPDATABLE);
                rs = stmt.executeQuery(
                    "select ID,Name,Sex,MinZu,VIPKind,Birthday,Unit,"
                    + "Address,postcode,Phone,Occu,MovePhone,CertID,Email,"
                    + "VIPID,Valid,Pass,Grade,EnterDate,EndDate,BeginMoney,"
                    + "CurMoney,SumCost,BeginPoints,CurPoints,SumPoints,Mem"
                    + " from VIP where VIPKind = '" + VIPKind + "'");
            }
            catch (SQLException ex) {
            }

        }
        Vector row = new Vector();//行
        Vector col = null;//列
        //添加行列元素
        try {
            while (rs.next()) {
                //从结果集中得到元素
                String MID = rs.getString("ID");
                String Mname = rs.getString("Name");
                String MvipKind = rs.getString("VIPKind");
                String Mvipid = rs.getString("VIPID");
                String Msex = rs.getString("Sex");
                String Mgrade = rs.getString("Grade");
                String Mphone = rs.getString("Phone");
                String Mmovephone = rs.getString("MovePhone");
                String Mbirthday = rs.getString("Birthday");
                String Mvalid = rs.getString("Valid");
                String Mpass = rs.getString("Pass");
                String Menterdate = rs.getString("EnterDate");
                String Menddate = rs.getString("EndDate");
                String Mbeginmoney = rs.getString("BeginMoney");
                String Mcurmoney = rs.getString("CurMoney");
                String Msumcost = rs.getString("SumCost");
                String Mbeginpoints = rs.getString("BeginPoints");
                String Mcurpoints = rs.getString("CurPoints");
                String Msumpoints = rs.getString("SumPoints");
                String Mminzu = rs.getString("MinZu");
                String Munit = rs.getString("Unit");
                String Maddress = rs.getString("Address");
                String Mpostcode = rs.getString("postcode");
                String Moccu = rs.getString("Occu");
                String Mcertid = rs.getString("CertID");
                String Memail = rs.getString("Email");
                //将元素添加到表格中
                col = new Vector();
                col.add(MID);
                col.add(Mname);
                col.add(MvipKind);
                col.add(Mvipid);
                col.add(Msex);
                col.add(Mgrade);
                col.add(Mphone);
                col.add(Mmovephone);
                col.add(Mbirthday);
                col.add(Mvalid);
                col.add(Mpass);
                col.add(Menterdate);
                col.add(Menddate);
                col.add(Mbeginmoney);
                col.add(Mcurmoney);
                col.add(Msumcost);
                col.add(Mbeginpoints);
                col.add(Mcurpoints);
                col.add(Msumpoints);
                col.add(Mminzu);
                col.add(Munit);
                col.add(Maddress);
                col.add(Mpostcode);
                col.add(Moccu);
                col.add(Mcertid);
                col.add(Memail);
                row.add(col);
            }
        }
        catch (SQLException ex1) {
        }
        //表头列名字
        Vector TableHeaderA = new Vector();
        String[] HeaderA = {"ID","姓名","会员类型","会员卡号","性别","类别","联系电话","手机",
            "出生日期","有效","密码","办卡日期","到期日期","初始储值","当前储值",
            "累计消费","初始积分","当前积分","累计积分","民族","单位","住址","邮政编码",
            "职业","证件号码","电子邮箱"};
        for(int i = 0; i < HeaderA.length;i++){
            TableHeaderA.add(HeaderA[i]);
        }
        //创建表格
        tmAbove = new DefaultTableModel(row,TableHeaderA);
        tableAbove = new JTable(tmAbove);
        //设置列宽度
        tableAbove.setAutoResizeMode(0);
        TableColumn column = null;
        column = tableAbove.getColumnModel().getColumn(0);
        column.setPreferredWidth(50);
        column = tableAbove.getColumnModel().getColumn(1);
        column.setPreferredWidth(80);
        column = tableAbove.getColumnModel().getColumn(2);
        column.setPreferredWidth(80);
        column = tableAbove.getColumnModel().getColumn(3);
        column.setPreferredWidth(80);
        column = tableAbove.getColumnModel().getColumn(4);
        column.setPreferredWidth(30);
        column = tableAbove.getColumnModel().getColumn(5);
        column.setPreferredWidth(50);
        column = tableAbove.getColumnModel().getColumn(6);
        column.setPreferredWidth(120);
        column = tableAbove.getColumnModel().getColumn(7);
        column.setPreferredWidth(120);
        column = tableAbove.getColumnModel().getColumn(8);
        column.setPreferredWidth(150);
        column = tableAbove.getColumnModel().getColumn(9);
        column.setPreferredWidth(30);
        column = tableAbove.getColumnModel().getColumn(10);
        column.setPreferredWidth(80);
        column = tableAbove.getColumnModel().getColumn(11);
        column.setPreferredWidth(150);
        column = tableAbove.getColumnModel().getColumn(12);
        column.setPreferredWidth(150);
        column = tableAbove.getColumnModel().getColumn(13);
        column.setPreferredWidth(100);
        column = tableAbove.getColumnModel().getColumn(14);
        column.setPreferredWidth(100);
        column = tableAbove.getColumnModel().getColumn(15);
        column.setPreferredWidth(100);
        column = tableAbove.getColumnModel().getColumn(16);
        column.setPreferredWidth(100);
        column = tableAbove.getColumnModel().getColumn(17);
        column.setPreferredWidth(100);
        column = tableAbove.getColumnModel().getColumn(18);
        column.setPreferredWidth(100);
        column = tableAbove.getColumnModel().getColumn(19);
        column.setPreferredWidth(50);
        column = tableAbove.getColumnModel().getColumn(20);
        column.setPreferredWidth(100);
        column = tableAbove.getColumnModel().getColumn(21);
        column.setPreferredWidth(150);
        column = tableAbove.getColumnModel().getColumn(22);
        column.setPreferredWidth(50);
        column = tableAbove.getColumnModel().getColumn(23);
        column.setPreferredWidth(80);
        column = tableAbove.getColumnModel().getColumn(24);
        column.setPreferredWidth(150);
        column = tableAbove.getColumnModel().getColumn(25);
        column.setPreferredWidth(150);
        //添加监听器,单选模式
        tableAbove.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        ListSelectionModel rowSMA = tableAbove.getSelectionModel();
        rowSMA.addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent e) {
                int row = tableAbove.getSelectedRow();
                if(row != -1)//只有当存在选中行时,才能决定下方表格需要显示
                    showAttributesInTableL(row);//根据选择显示右下左表格
                repaint();
            }

⌨️ 快捷键说明

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