【问题标题】:Refresh JTable so data inserted is shown刷新 JTable 以显示插入的数据
【发布时间】:2019-05-19 02:58:27
【问题描述】:

我正在做一个项目,我有两个JFrame 窗口。第一帧显示一个空表。它下方的按钮将打开应输入数据的第二帧。我的问题是,当我在第二帧中单击“确定”时,第一帧的表格不会显示插入的数据。

我尝试了jframe.revalidate();jframe.repaint() 以及table.revalidate();table.repaint();,但它不起作用。

另外,我正在使用DefaultTableModel,所以我也尝试了model.fireTableDataChanged();,但仍然没有。

//first jframe
public NewJFrame() {
    initComponents();
    setLocationRelativeTo(null);
    viewTable();
}

Object[] newRow;

public NewJFrame(Object[] newRow){
    initComponents();
    setLocationRelativeTo(null);
    this.newRow = newRow;
    addNewRow();
}

public void viewTable(){
    table.setFont(new Font("Segoe UI", Font.PLAIN, 16));
    JTableHeader tablehead1 = table.getTableHeader();
    tablehead1.setFont(new Font("Segoe UI", Font.PLAIN, 16));
    table.setRowHeight(30);

    TableColumnModel columnModel = table.getColumnModel();        
    columnModel.getColumn(0).setPreferredWidth(400);     //Name
    columnModel.getColumn(1).setPreferredWidth(100);    //Age
}

public void addNewRow(){
    DefaultTableModel model = (DefaultTableModel) table.getModel();
    model.addRow(newRow);
    System.out.println(newRow[0].toString() + newRow[1].toString()); //so i would know data is present
}

private void addActionPerformed(java.awt.event.ActionEvent evt) {                                    
    form f = new form();
    f.setVisible(true);
} 

//here's the second jframe
public form() {
    initComponents();
    setLocationRelativeTo(null);
}

private void OKActionPerformed(java.awt.event.ActionEvent evt) {                                   
    Object[] input = { name.getText(), age.getText() };

    if(input.equals("")){
        System.out.println("empty");
    } else {
        NewJFrame n = new NewJFrame(input);
        n.revalidate();
        n.repaint();
        this.setVisible(false);
    }

【问题讨论】:

标签: java swing jframe jtable


【解决方案1】:

您的问题是您将输入数据传递给 new NewJFrame 而不是现有的。解决方案是不这样做,将其传递给现有的 和当前显示的 NewJFrame 实例。如何?取决于你的代码。请注意,第二个“JFrame”应该是 JDialog,可能是 modal JDialog。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 2012-01-07
    • 2014-09-06
    • 1970-01-01
    • 2014-08-11
    • 2015-02-02
    • 1970-01-01
    相关资源
    最近更新 更多