作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个主框架,其中有一个数组列表,其中包含订单的项目列表。然后我有一个按钮,它创建一个新窗口,该窗口有一个表单,允许用户为一个项目选择多个选项,然后将此信息放入一个对象中。
我想将此对象返回到原始框架,以便我可以将其添加到订单数组列表中。但是我不知道如何解决这个问题,因为我的框架在我使用 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/
有时,当我调用 ipdb 时,我知道我想要成为跟踪设置上方的框架。我认为这就是 API 公开 frame 参数的原因(如 the documentation 中所述)。 所以这是函数: import
我是一名优秀的程序员,十分优秀!