📄 userframe.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 + -