gpt4 book ai didi

java - 单击按钮时从另一个 JFrame 调用 JFrame 方法

转载 作者:行者123 更新时间:2023-12-02 02:44:59 26 4
gpt4 key购买 nike

我在堆栈溢出上搜索了我的问题的类似答案,但它们都没有帮助我。

所以我的问题如下:

我有一个名为 Main_Window 的主 JFrame,其中有一个 JTable 和一个 JButton。单击按钮后,另一个 JFrame (Update_Window) 将打开,我可以从中更新表。 Update_Window JFrame 有两个文本字段和一个SUBMIT按钮。

简单地说,我想从 Update_Window JFrame 更新 Main_Window 中的 JTable。在 TextFields 中输入内容并使用按钮提交后,数据应该出现在 Main_Window 的 JTable 中,但它不起作用。

这是我的Main_Window JFrame:

    private void updateBtnActionPerformed(java.awt.event.ActionEvent evt) {                                         
Update_Window newWindow = new Update_Window();
newWindow.setVisible(true);
newWindow.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}

public void putDataIntoTable(Integer data, int row, int col) {
jTable1.setValueAt(data,row,col);
}

这是我的Update_Window JFrame:

    private void submitBtnActionPerformed(java.awt.event.ActionEvent evt) {                                      
quantity = Integer.parseInt(quantityTextField.getText());
price = Integer.parseInt(priceTextField.getText());
Main_Window mw = new Main_Window();
mw.putDataIntoTable(price,3,2);
}

我认为我的问题在这里Main_Window mw = new Main_Window();,因为这会创建一个新实例,并且不会将数据添加到正确的窗口,或类似的东西。

最佳答案

是的,你说得对。 Main_Window mw = new Main_Window(); 行肯定是错误的。

更好的解决方案是:

public class UpdateWindow extends JFrame {
private final MainWindow mainWindow;
public UpdateWindow(MainWindow mainWin) {
mainWindow = mainWin;
}
private void submitBtnActionPerformed(java.awt.event.ActionEvent evt) {
quantity = Integer.parseInt(quantityTextField.getText());
price = Integer.parseInt(priceTextField.getText());
mainWindow.putDataIntoTable(price,3,2);
}
}

您还需要更正 UpdateWindow 的构造函数调用

private void updateBtnActionPerformed(java.awt.event.ActionEvent evt) {                                         
UpdateWindow newWindow = new UpdateWindow(this);
newWindow.setVisible(true);
newWindow.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}

请注意:我已按照 Java 命名约定的建议更正了您的类名称。 Main_Window -> MainWindowUpdate_Window -> UpdateWindow

当我的建议不能解决您的问题时,请提供[mcve],以便我们更好地识别您的问题。

关于java - 单击按钮时从另一个 JFrame 调用 JFrame 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57151723/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com