繁体   English   中英

如何显示自定义列名 JTable 而不是来自数据库?

[英]How to display custom column names JTable and not from Database?

首先,我使用 Eclipse、WindowBuilder 和 rs2xml.java 来处理表格。 我的问题是,有没有办法显示自定义列名,例如。 像在设置中,而不是从数据库中?

当我执行我的代码时,它从数据库而不是从设置中设置名称,我不希望那样......

显示表:

public void MainTableShow() {

    try {

         String query="select Rb, Popisni_broj, Lokation, Kancelarija, Tip, Ispravnost from Main";

         PreparedStatement pst=connection.prepareStatement(query);
         ResultSet rs=pst.executeQuery();
         tableMain.setModel(DbUtils.resultSetToTableModel(rs));


         pst.close();
         rs.close();

    } catch (Exception e) {
        // TODO: handle exception
    }
}

这是在 WindowBuilder 中完成的表格设置

JScrollPane scrollPane = new JScrollPane();
    tableMain = new JTable();
    tableMain.setModel(new DefaultTableModel(
        new Object[][] {
            {null, null, null, null, null, null},
        },
        new String[] {
            "Redni Broj", "Popisni Broj", "Lokacija", "Radno Mesto", "Tip opreme", "Ispravnost opreme"
        }
    ) {
        Class[] columnTypes = new Class[] {
            Integer.class, String.class, String.class, String.class, String.class, Boolean.class
        };
        public Class getColumnClass(int columnIndex) {
            return columnTypes[columnIndex];
        }
        boolean[] columnEditables = new boolean[] {
            false, false, false, false, false, false
        };
        public boolean isCellEditable(int row, int column) {
            return columnEditables[column];
        }
    });
    scrollPane.setViewportView(tableMain);
    textFieldSearch = new JTextField();
    textFieldSearch.setColumns(10);

在这里,您的代码基本上说:

tableMain.setModel(...

两次。 最有可能的是,第二个调用是采用DbUtils.resultSetToTableModel(rs)调用。 第二个模型只是吹嘘你在第一次调用时放在那里的任何东西。

因此,答案是:您不能像那样使用该实用程序调用。 猜测DbUtils.resultSetToTableModel()中的实用程序代码构建了一个仅使用来自数据库的值的模型。

如果您想适应该模型,那么您必须研究该实用程序方法并更改其正在执行的操作。 例如,您可以使用另一种实用方法,该方法也通过代码获取列名称,并使用这些名称而不是来自数据库的值。

但是由于您没有向我们透露该方法,因此不可能提供更具体的建议。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM