龙空技术网

如何解决java_GUI中Jtable表格重叠问题

焕奇原画 69

前言:

此时小伙伴们对“jsjquery调用”大体比较看重,姐妹们都需要学习一些“jsjquery调用”的相关资讯。那么小编也在网上网罗了一些有关“jsjquery调用””的相关知识,希望咱们能喜欢,同学们快快来了解一下吧!

直接使用JScrollPane套Jtable最容易出现的问题就是重叠问题,上图:

像这样,先是显示会员界面,然后点击切换图书界面后所出现的画面重叠,这种问题最好的解决方式就是套DefaultTableModel,让Jtable与DefaultTableModel处于全局状态,到时候直接更改横项与纵向数据就行。

这是有重叠问题的代码:

try {String[][] columnDate = new String[99][9];String[] lib = {"图书编号", "图书类型", "图书简介", "图书作者", "图书出版社", "出版时间","是否借出"};Statement stmt = mysql.conn.createStatement();ResultSet rs = stmt.executeQuery("select * from book");int col=0;while (rs.next()) {//rs一列一列循环输出 String bookid = rs.getString("图书编号");String bookname = rs.getString("图书类型");String bookleixing = rs.getString("图书简介");String bookjianjie = rs.getString("图书作者");String bookroot = rs.getString("图书出版社");String booka = rs.getString("出版时间");String bookxy = rs.getString("是否借出");columnDate[col][0] = bookid;columnDate[col][1] = bookname;columnDate[col][2] = bookleixing;columnDate[col][3] = bookjianjie;columnDate[col][4] = bookroot;columnDate[col][5] = booka;columnDate[col][6] = bookxy;col++;}JTable table= new JTable(columnDate, lib);table.getColumnModel().getColumn(0).setPreferredWidth(40);// 设置第二列宽度为120table.getColumnModel().getColumn(1).setPreferredWidth(120);JScrollPane scrollPane = new JScrollPane(table);panel.add(scrollPane);scrollPane.setBounds(10,70,765,500);DefaultTableCellRenderer r = new DefaultTableCellRenderer();r.setHorizontalAlignment(JLabel.CENTER);table.setDefaultRenderer(Object.class, r);}catch (SQLException e2){}

这里的解决方案如下:

在全局放置public JTable table = null;private DefaultTableModel tmModel = null;

tmModel = new DefaultTableModel();tmModel.setDataVector(columnDate, lib);//让表格数据写入DefaultTableModeltable= new JTable(tmModel);//JTable再调用DefaultTableModeltable.getColumnModel().getColumn(0).setPreferredWidth(40);// 设置第二列宽度为120table.getColumnModel().getColumn(1).setPreferredWidth(120);JScrollPane scrollPane = new JScrollPane(table);panel.add(scrollPane);scrollPane.setBounds(10,70,765,500);DefaultTableCellRenderer r = new DefaultTableCellRenderer();r.setHorizontalAlignment(JLabel.CENTER);table.setDefaultRenderer(Object.class, r);

这样之后再点击切换后执行如下代码就行了;

tmModel.setDataVector(columnDate, lib);使用这一段就直接可以更换表格中的数据。

点击切换后执行的代码:

try {String[][] columnDate = new String[99][9];String[] lib = {"id", "昵称", "账号", "密码", "注册日期", "是否管理员"};Statement stmt = mysql.conn.createStatement();ResultSet rs = stmt.executeQuery("select * from user");int col=0;while (rs.next()) {//rs一列一列循环输出 String bookid = rs.getString("id");String bookname = rs.getString("昵称");String bookleixing = rs.getString("账号");String bookjianjie = rs.getString("密码");String bookroot = rs.getString("注册日期");String booka = rs.getString("是否管理员");columnDate[col][0] = bookid;columnDate[col][1] = bookname;columnDate[col][2] = bookleixing;columnDate[col][3] = bookjianjie;columnDate[col][4] = bookroot;columnDate[col][5] = booka;col++;}tmModel.setDataVector(columnDate, lib);}catch (SQLException e1){}

教程结束

标签: #jsjquery调用