我创建了一个模态 JDialog 框,上面有一个自定义绘图和一个 JButton。当我单击 JButton 时,JDialog 框应关闭并返回一个值。
我在父 JFrame 中创建了一个名为 setModalPiece 的函数,它接收一个值并将其设置为一个本地 JFrame 变量。
问题是这个函数在 JDialog 框中是不可见的(即使 JDialog 框有对父 JFrame 的引用)。
两个问题: 1) 有没有更好的方法将 JDialog 框中的值返回到其父 JFrame?
2) 为什么不能使用传递给 JDialog 的 JFrame 引用来访问我的 JFrame 函数 setModalPiece?
最佳答案
我一般是这样的:
Dialog dlg = new Dialog(this, ...);
Value result = dlg.showDialog();
Dialog.showDialog()
函数如下所示:
ReturnValue showDialog() {
setVisible(true);
return result;
}
由于在 JDialog 上将可见性设置为 true 是一种模态操作,因此 OK 按钮可以将实例变量 (result
) 设置为所选的对话框结果(或 null
如果取消)。在OK/Cancel按钮方法中处理后,这样做:
setVisible(false);
dispose();
将控制权返回给 showDialog()
函数。
关于java - 如何将 JDialog 框中的值返回到父 JFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4089311/