Rol*_*lan 43 java swing return-value jdialog
我创建了一个模态JDialog框,其上有一个自定义绘图和一个JButton.当我单击JButton时,JDialog框应该关闭,并且应该返回一个值.
我在父JFrame中创建了一个名为setModalPiece的函数,它接收一个值并将其设置为本地JFrame变量.
问题是从JDialog框中看不到此函数(即使JDialog框具有对父JFrame的引用).
两个问题:1)有没有更好的方法将值从JDialog框返回到其父JFrame?
2)为什么不能使用传递给JDialog的JFrame的引用来访问我的JFrame函数setModalPiece?
Jon*_*han 108
我通常这样做:
Dialog dlg = new Dialog(this, ...);
Value result = dlg.showDialog();
Run Code Online (Sandbox Code Playgroud)
该Dialog.showDialog()
函数如下所示:
ReturnValue showDialog() {
setVisible(true);
return result;
}
Run Code Online (Sandbox Code Playgroud)
由于在JDialog上将可见性设置为true是一种模态操作,因此OK按钮可以将实例变量(result
)设置为对话框的选定结果(或者null
如果取消).在"确定/取消"按钮方法中处理后,执行以下操作:
setVisible(false);
dispose();
Run Code Online (Sandbox Code Playgroud)
将控制权返回给showDialog()
函数.