【发布时间】:2017-01-03 17:38:41
【问题描述】:
我有我的主 JFrame 和另外一个 JDialog。 如果用户单击按钮,我希望 JDialog 从此 JFrame 调用方法(其中包含此 JFrame 中 ComboBox 的一些操作)。 我怎样才能做到这一点? 我不想使用 MyJFrame form = new MyJFrame();因为它会创建一个我不想做的新 JFrame,所以我想从当前在我的计算机上运行的 JFrame 调用方法。 谢谢。
【问题讨论】:
我有我的主 JFrame 和另外一个 JDialog。 如果用户单击按钮,我希望 JDialog 从此 JFrame 调用方法(其中包含此 JFrame 中 ComboBox 的一些操作)。 我怎样才能做到这一点? 我不想使用 MyJFrame form = new MyJFrame();因为它会创建一个我不想做的新 JFrame,所以我想从当前在我的计算机上运行的 JFrame 调用方法。 谢谢。
【问题讨论】:
假设JButton 在JDialog 上。
如果两者都在同一个班级,为什么不这样做呢?
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//I just got clicked
form.doSomething();
}
});
可以简写为
button.addActionListener(e -> form.doSomething());
如果它们不是,并且您正在扩展 JDialog(我不推荐),只需在其构造函数中传递 JFrame,那么您的对话框将可以访问它。
如果不查看更多代码,就不可能添加更多内容。
【讨论】:
JDialog 吗?在其构造函数中传递您的 MyJFrame 并使用它
也许 JOptionPane.showInputDialog() ,显示一个 JDialog 以获取用户的输入。
【讨论】: