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

 最近不太忙,写了个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就可以

你可能感兴趣的:(j2se,swing,jtable刷新)