gpt4 book ai didi

java - 从 JPanel 实例化 JDialog

转载 作者:搜寻专家 更新时间:2023-10-31 08:17:43 26 4
gpt4 key购买 nike

我有一个JPanel,我想响应鼠标点击,然后打开一个JDialogJDialog 构造函数需要一个 JFrame 实例,而不是 JPanel - 我该如何解决这个问题?

最佳答案

您真的应该尝试将 JDialog 附加到父对话框或框架,特别是如果您希望它是模态的(通过传递父窗口,对话框将附加到您的窗口,并且将父对话框也带入子对话框).否则,用户体验真的会出错:丢失对话框、阻塞窗口而看不到模态对话框等...

要找到您的 JPanel 父窗口,您只需要以下代码:

JPanel panel = new JPanel();
Window parentWindow = SwingUtilities.windowForComponent(panel);
// or pass 'this' if you are inside the panel
Frame parentFrame = null;
if (parentWindow instanceof Frame) {
parentFrame = (Frame)parentWindow;
}
JDialog dialog = new JDialog(parentFrame);
...

如果您不知道自己是在框架中还是在对话框中,请对这两个类进行“instanceof”测试。

关于java - 从 JPanel 实例化 JDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10522121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com