如何刷新JTable的值?

How to refresh the value of JTable?

if(e.getSource()== submit){
    // Error Handling
    if(viewSelection.getText().equals("Empty") || textField.getText().isBlank()) {
        JOptionPane.showMessageDialog(null, "Wrong Value");
    }else {
        try {
            dataFile.EditData(viewSelection.getText(), dataFile.ReadData(), Integer.parseInt(textField.getText()));
            // table.setValueAt(dataFile.material.get(viewSelection.getText()), 0,0);
            JOptionPane.showMessageDialog(null, "Saved Data!");

        } catch (IOException ioException) {
            ioException.printStackTrace();
        }
    }
}
String header[] = {"material", "stack"};
String contents[][] = {
        {milk.getText(), dataFile.material.get(milk.getText())},
        {vanila.getText(), dataFile.material.get(vanila.getText())},
        {coffeebean1.getText(), dataFile.material.get(coffeebean1.getText())},
        {coffeebean2.getText(), dataFile.material.get(coffeebean2.getText())},
        {coffeebean3.getText(), dataFile.material.get(coffeebean3.getText())},
        {choco.getText(), dataFile.material.get(choco.getText())},
        {caramel.getText(), dataFile.material.get(caramel.getText())},
        {icecream.getText(), dataFile.material.get(icecream.getText())},
        {sweatMilk.getText(), dataFile.material.get(sweatMilk.getText())}
};
DefaultTableModel model = new DefaultTableModel(contents, header);
table = new JTable(contents, header);
model.fireTableDataChanged();
JScrollPane scrollpane = new JScrollPane(table);

我正在编写一个程序来从 DataFile Class 导入值并通过 GUI 更改值。
我想在用户按下提交按钮时刷新 JTable 的值。
我试图更改 table 的列值,但我很担心,因为它不起作用....

在我看来,每次用户按下提交按钮时,您都必须再次执行所有这些代码:

String header[] = {"material", "stack"};
String contents[][] = {
        {milk.getText(), dataFile.material.get(milk.getText())},
        {vanila.getText(), dataFile.material.get(vanila.getText())},
        {coffeebean1.getText(), dataFile.material.get(coffeebean1.getText())},
        {coffeebean2.getText(), dataFile.material.get(coffeebean2.getText())},
        {coffeebean3.getText(), dataFile.material.get(coffeebean3.getText())},
        {choco.getText(), dataFile.material.get(choco.getText())},
        {caramel.getText(), dataFile.material.get(caramel.getText())},
        {icecream.getText(), dataFile.material.get(icecream.getText())},
        {sweatMilk.getText(), dataFile.material.get(sweatMilk.getText())}
};
DefaultTableModel model = new DefaultTableModel(contents, header);
table = new JTable(contents, header);

和你的一样。这似乎是您用来在 table 中显示 DataFile 中的值的代码,因此您可以将这段代码放在一个函数中,并在程序开始时调用该函数,每次提交按钮是按下