簡體   English   中英

如何刷新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的值。
我試圖改變表格的列值,但我很擔心,因為它不起作用......

在我看來,每次用戶按下提交按鈕時,您都必須再次執行所有這些代碼:

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);

這和你的一樣。 似乎這是您用來在表中顯示 DataFile 值的代碼,因此您可以將此代碼放在 function 中,並在程序開始時和每次按下提交按鈕時調用 function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM