我有一个Java表单应用程序,并且想在运行时更改jTable的tableModel(单击按钮时)
我正在使用以下代码:

JButton btnNewButton = new JButton("Execute");
btnNewButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        try {
            TableModel newModel = dbHandler.executeQueryToTable(myQuery.getText());
            table.setModel(newModel);
            ((AbstractTableModel) newModel).fireTableDataChanged();
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

    }
});


问题在于表格没有改变。我检查了模型是否正常,但我认为该表需要以某种方式进行更新。
非常感谢你!

最佳答案

尝试使用下面的代码临时更改您的代码。如果您的表在单击按钮时更新,则可能是您的dbHandler.executeQueryToTable(myQuery.getText())

JButton btnNewButton = new JButton("Execute");
btnNewButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {


        TableModel newModel = new DefaultTableModel(
            new Object [][] {{"a", "b"}, {"e", null}},
            new String [] {"Title 1", "Title 2"});

        this.jTable1.setModel(newModel);
        ((AbstractTableModel) newModel).fireTableDataChanged();



    }
});


上面的代码在我的测试中工作正常。

关于java - 在运行时更改jTable模型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31893699/

10-13 00:08