您的位置:首页 > 其它

Swing开发的收获心得(一)---------Jtable刷新

2011-11-21 16:43 169 查看
最近不太忙,写了个j2se的应用程序,边写边解决,发现很多有意思的问题。把问题和解决方法整理下,方便后来人吧。

废话不多说,上图



需求是,点击用户管理这个JFrame上的新增,会弹出一个JDialog。新增完了,JDialog关闭,用户管理的jtabl会刷新

思路是,insert数据完了之后,重新select数据,把数据重新传给Jtable。下面是代码:

1、触发新增按钮

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

// 新增

if(userSession!=null) {

new AddUserFrame(this,true,userSession,jTable1).setVisible(true);这里把Jtable传给了新增的页面

}else {

JOptionPane.showMessageDialog(this, "无权限,请退出软件重新登录", "提示", JOptionPane.ERROR_MESSAGE);

}

}

2、插入后的数据回传

Date date = new Date();

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String time = df.format(date);

int uid = dbCon.getUserID(userSession);

String newPwd = MD5.MD5(password);

String sql = "insert into user (uname,pwd,adduser,addtime,status,realname) values ('"+uname+"','"+newPwd+"','"+uid+"','"+time+"','"+status+"','"+realname+"')";

dbCon.insert(sql);

JOptionPane.showMessageDialog(this, "添加成功", "提示", JOptionPane.INFORMATION_MESSAGE);

dispose();蓝得可以不看

//刷新Jtable数据

Object[][] data = null;

data = dbCon.getAllUserInfo();获得新数据,根据自己情况去获得数据

String[] names = {"序号","用户名","真实姓名","状态"};

MyTableModel tableModel = new MyTableModel(data, names);重新创建一个TableModel

jTable.setModel(tableModel);

jTable.setEnabled(true);

DefaultTableCellRenderer r = new DefaultTableCellRenderer(); //cell居中

r.setHorizontalAlignment(JLabel.CENTER);

jTable.setDefaultRenderer(Object.class, r); 观,让数据居中的黄色的是为了美观,让数据居中的代码中的

这里我自己重写了JtableModel,自己定义了个MyTableModel,大家一般用DefaultTableModel就可以
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: