gpt4 book ai didi

java - 如何将对象返回到仍打开的前一帧?

转载 作者:行者123 更新时间:2023-12-02 06:05:35 24 4
gpt4 key购买 nike

我有一个主框架,其中有一个数组列表,其中包含订单的项目列表。然后我有一个按钮,它创建一个新窗口,该窗口有一个表单,允许用户为一个项目选择多个选项,然后将此信息放入一个对象中。

我想将此对象返回到原始框架,以便我可以将其添加到订单数组列表中。但是我不知道如何解决这个问题,因为我的框架在我使用 netbeans 时自动生成了代码。

最佳答案

您应该使用监听器(接口(interface))系统。创建一个接口(interface)并在主框架中实现它,当您创建第二个框架时,您将第一个框架作为参数传递。通过这种方式,您将能够在任何时候以优雅的方式调用一个方法,比如说,在第二帧中调用 onItemSelected 。使用接口(interface)比较方便,可以有多个监听器。

有一个例子:

class MyFrame extends JFrame implements ItemSelectedListener {

void onButtonClick() {
new SecondFrame(this);
}

@Override
public void onItemSelected(List<String> items) {
// do your stuff with the selected items here
}

}

interface ItemSelectedListener {
void onItemSelected(List<String> items);
}

class SecondFrame extends JFrame {

private ItemSelectedListener itemSelectedListener;
private JTextField name;
private JButton buttonOk;

SecondFrame(ItemSelectedListener listener) {
itemSelectedListener = listener;

name = new JTextField();
buttonOk = new JButton("OK");
getContentPane().add(name);
getContentPane().add(buttonOk);

buttonOk.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
List<String> myFormItems = new ArrayList<>();
// fulfill your list with all informations that you need
myFormItems.add(name.getText());
// notify your main frame that the user finished to complete the form
itemSelectedListener.onItemSelected(myFormItems);
}
});
}

}

关于java - 如何将对象返回到仍打开的前一帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55942185/

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