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

📄 userframe.java

📁 简单的留言版
💻 JAVA
字号:
package res;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import java.awt.Rectangle;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.Font;
import javax.swing.JButton;
import java.awt.SystemColor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import java.util.Vector;
import javax.swing.table.AbstractTableModel;
import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;
import javax.swing.JComboBox;
import javax.swing.JScrollPane;
import javax.swing.JPanel;

/**
 * <p>Title: 同学信息查询窗口</p>
 *
 * <p>Description: 查看同学的个人注册信息 </p>
 *
 * <p>Copyright: A1Q6073-未定义小组 2006</p>
 *
 * <p>Company: 北大青鸟Aptech(西安毕诚) </p>
 *
 * @author not 王亮 冯瑞 冯鹏 刘文涛 赵凡(按姓氏笔画排序)
 * @version 1.0
 */

public class UserFrame extends JFrame {
    JLabel lblUid = new JLabel();
    JButton btnUdel = new JButton();
    JLabel lblCtit = new JLabel();
    JComboBox cbxUid = new JComboBox();
    JTable jtbCmeg = new JTable();
    String title[] = {"序号","学号", "姓名", "性别", "电话", "电子邮件", "地址"};
    Vector vc;
    AbstractTableModel tm;
    MainFrame mfu;

    DBconnection db = new DBconnection();

    JScrollPane jScrollPane1 = new JScrollPane();
    public UserFrame(MainFrame mf) {
        try {
            mfu = mf;
            ufsetcbx();
            ShowJTable();
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
        getContentPane().setLayout(null);
        this.getContentPane().setBackground(SystemColor.activeCaptionBorder);
        this.setResizable(false);
        this.addWindowListener(new UserFrame_this_windowAdapter(this));
        lblUid.setFont(new java.awt.Font("宋体", Font.PLAIN, 16));
        lblUid.setText("学号:");
        lblUid.setBounds(new Rectangle(46, 81, 46, 29));
        btnUdel.setBounds(new Rectangle(210, 83, 62, 23));
        btnUdel.setOpaque(false);
        btnUdel.setText("删除");
        btnUdel.addActionListener(new UserFrame_btnUdel_actionAdapter(this));
        lblCtit.setFont(new java.awt.Font("楷体_GB2312", Font.BOLD, 22));
        lblCtit.setText("学员信息管理");
        lblCtit.setBounds(new Rectangle(31, 26, 146, 30));
        TestImage tImage = new TestImage();
        cbxUid.setBounds(new Rectangle(93, 83, 105, 23));
        jScrollPane1.setBounds(new Rectangle(35, 120, 499, 178));
        this.getContentPane().add(tImage);
        tImage.add(lblCtit);
        tImage.add(lblUid);
        tImage.add(cbxUid);
        tImage.add(btnUdel);
        tImage.add(jScrollPane1);
        jScrollPane1.getViewport().add(jtbCmeg);
        tImage.setLayout(null);
        tImage.setBounds(new Rectangle(0, 0, 565, 315)); //面板图片大小,下行为需要插的图片
        tImage.setImage("image\\f2.jpg");
        tImage.setSize(565, 315);
        setTitle("学员管理");
    }

    /*自定义在JTable里显示查询结果*/
    public void ShowJTable() {
        String sql = "select * from stumeg where id<>'admin'";
        ResultSet rs = db.GetRs(sql);
        try {
            vc = new Vector();

            tm = new AbstractTableModel() {
                public int getColumnCount() {
                    return title.length;
                }

                public int getRowCount() {
                    return vc.size();
                }

                public Object getValueAt(int row, int column) {
                    if (!vc.isEmpty()) {
                        return ((Vector) vc.elementAt(row)).elementAt(column);

                    } else {
                        return null;
                    }
                }

                public String getColumnName(int column) {
                    return title[column];
                }

                //数据模型不可编辑,该方法设置为空
                public void setValueAt
                        (Object value, int row, int column) {}

                //取得列所属对象类
                public Class getColumnClass(int c) {
                    return getValueAt(0, c).getClass();
                }

                //设置单元格不可编辑,为缺省实现
                public boolean isCellEditable(int row, int column) {
                    return false;
                }
            };
            //生成自己的数据模型
            jtbCmeg = new JTable(tm);
            //设置帮助提示
            jtbCmeg.setToolTipText("显示全部查询结果");
            //设置表格调整尺寸模式
            jtbCmeg.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            //设置单元格选择方式
            jtbCmeg.setCellSelectionEnabled(false);
            //设置是否显示单元格间的分割线
            jtbCmeg.setShowVerticalLines(true);
            //设置表是否绘制单元格之间的水平线
            jtbCmeg.setShowHorizontalLines(true);

            //初始化向量对象
            vc.removeAllElements();
            //更新表格内容
            tm.fireTableStructureChanged();

            int i=1;
            while (rs.next()) {
                Vector rec_vector = new Vector();
                //从结果集中取数据放入向量rec_vector中
                rec_vector.addElement(i+"\t");
                rec_vector.addElement(rs.getString(1));
                rec_vector.addElement(rs.getString(2));
                rec_vector.addElement(rs.getString(4));
                rec_vector.addElement(rs.getString(5));
                rec_vector.addElement(rs.getString(6));
                rec_vector.addElement(rs.getString(7));
                //向量rec_vector加入向量vect中
                vc.addElement(rec_vector);
                i++;
            }
            //更新表格,显示向量vect的内容
            tm.fireTableStructureChanged();

            rs.close();
        } catch (Exception exception) {

        }

    }

    //自定义 cbxUid 赋值的方法,且根据列表的大小判断学员信息是否为空
    public void ufsetcbx() {
        String sql = "select id from stumeg where id<>'admin'";
        ResultSet rscbx = db.GetRs(sql);
        try {
            //从项列表中移除所有项
            cbxUid.removeAllItems();
            cbxUid.addItem("");
            cbxUid.addItem("全部");
            while (rscbx.next()) {
                cbxUid.addItem(rscbx.getString(1));
            }
            rscbx.close();
            //根据列表的大小判断学员信息是否为空
        } catch (Exception ex) {

        }
    }


    /*删除事件*/
    public void btnUdel_actionPerformed(ActionEvent e) {
        try {
            if (cbxUid.getSelectedItem().equals("")) {
                JOptionPane.showMessageDialog(this, "请选择您要删除的学号");
            } else if (cbxUid.getSelectedItem().equals("全部")) {
                int faly = JOptionPane.showConfirmDialog(this, "您确认要删除全部学员吗?",
                        "确认", JOptionPane.YES_NO_OPTION);
                if (faly == 0) {
                    //删除管理员以外的所有学员
                    String del1 = "delete from stumeg where id <> 'admin'";
                    //删除所有留言
                    String del2 = "delete from pubmeg where pmeg_send<>'admin'";
                    //删除管理员以外的所有个人留言
                    String del3 = "delete from prvmeg where Gmeg_get<>'admin' or Gmeg_send<>'admin'";
                    //修改 admin 的个人是否有新留言状态;
                    String updt="update stuMeg set sstau=0 where id='admin'";
                    db.ResultSql(del1);
                    db.ResultSql(del2);
                    db.ResultSql(del3);
                    db.ResultSql(updt);
                    ShowJTable();
                    ufsetcbx();
                    mfu.select();
                    mfu.setcbx();
                    JOptionPane.showMessageDialog(this, "全部学员及相关的信息已全部删除!");
                    //锁定学号列表
                    cbxUid.setEnabled(false);
                    //锁定删除
                    btnUdel.setEnabled(false);
                }
            } else {
                int faly = JOptionPane.showConfirmDialog(this,
                        "您确认要删除" + cbxUid.getSelectedItem() + "学员的信息吗?", "确认",
                        JOptionPane.YES_NO_OPTION);
                if (faly == 0) {
                    //删除学员信息
                    String del1 = "delete from stumeg where id='" +
                                  cbxUid.getSelectedItem() + "'";
                    //删除学员的所有发送的留言
                    String del2 = "delete from pubmeg where id='" +
                                  cbxUid.getSelectedItem() + "'";
                    //删除学员的所有个人留言
                    String del3 = "delete from prvmeg where Gmeg_get='" +
                                  cbxUid.getSelectedItem() + "'";
                    db.ResultSql(del1);
                    db.ResultSql(del2);
                    db.ResultSql(del3);
                    ShowJTable();
                    mfu.select();
                    mfu.setcbx();
                    JOptionPane.showMessageDialog(this,
                                                  cbxUid.getSelectedItem() + "学员及相关信息全部删除!");
                    ufsetcbx();
                    //根据列表的大小判断学员信息是否为空
                    if (cbxUid.getItemCount() == 2) {
                        JOptionPane.showMessageDialog(this, "已没有学员信息");
                        //锁定学号列表
                        cbxUid.setEnabled(false);
                        //锁定删除
                        btnUdel.setEnabled(false);
                    }

                }
            }
        } catch (Exception ex) {

        }
    }
    /*窗口关闭事件*/
    public void this_windowClosing(WindowEvent e) {
        mfu.setEnabled(true);
    }

}


class UserFrame_this_windowAdapter extends WindowAdapter {
    private UserFrame adaptee;
    UserFrame_this_windowAdapter(UserFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void windowClosing(WindowEvent e) {
        adaptee.this_windowClosing(e);
    }

}


class UserFrame_btnUdel_actionAdapter implements ActionListener {
    private UserFrame adaptee;
    UserFrame_btnUdel_actionAdapter(UserFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.btnUdel_actionPerformed(e);
    }
}

⌨️ 快捷键说明

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