java - 如何将 JDialog 框中的值返回到父 JFrame?

标签 java swing return-value jdialog

我创建了一个模态 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/

相关文章:

java - Office 365 SOAP API(通过 ews-java-api)响应时间差?

java - Swing 星级

c++ - 在 C++11 中省略返回类型

c# - 是否可以在 C# 中返回对变量的引用?

c++ - 从函数返回字符串

java - 如何在 GlassFish 上构建从 JAX-WS 到 Swing 客户端的推送通知?

java - 如何在不安装 MS Office 且不使用 Interop Library 的情况下读取服务器中的 MS Office 文件?

java - 无法在 Android 中使用 Volley 响应执行 AutoCompleteTextView

java - 有什么办法可以让 BorderLayout 东、南、西边框变大吗?

Java - 将图像添加到 JButton