如何在Jtable中显示所选的数据库列?

时间:2014-09-23 09:24:17

标签: java sql jtable

我使用数据库表的内容成功填充了JTable,但我只想显示它的选定列。有没有办法做到这一点?或者甚至可以选择在JTable中显示哪一列?

以下是填充JTable

的方法
    private void Update_table() {
        try {
            String sql = "select * from Members";
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            Members_Table.setModel(DbUtils.resultSetToTableModel(rs));
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }

我的数据库表名是“Members”。 “Members_Table”是我JTable的名称。

2 个答案:

答案 0 :(得分:1)

您可以尝试更改sql语句,只选择您感兴趣的列。例如,如果成员有列" MemberId"," MemberFirstName"," MemberLastName" " MemberAddressFK",你只想显示MemberFirstName和MemberLastName,你可以改变你的sql

String sql = "select MemberFirstName, MemberLastName from Members";

您可以在http://beginner-sql-tutorial.com/sql-select-statement.htm

找到有关sql select语句的更多详细信息

答案 1 :(得分:0)

如果您在Java端寻找更强大的数据模型并希望隐藏JTable中的列,则可以使用JTable中的removeColumn。此不会从Table模型中删除列,只能从可见的表示中删除。如果您跟踪哪些列隐藏或可见,您可以轻松地将列重新放入,并且其数据仍将正确关联。

例如,要删除第一列,您可以使用:

myTable.removeColumn(myTable.getColumnModel().get(0)); 
// i don't remember if it's 0-index or 1-index for first column

作为一个例子,我会为每个列动态填充带有复选框的JPanel,然后选中并取消选中单个框将隐藏和禁用这些列。这允许您保留所有数据,但仅显示当时与用户相关的数据,类似于隐藏Excel中的列的工作方式。