我正在为window和mac创建一个应用程序。我在框架上显示一个对话框。它在窗口上工作正常,但我面临着关于mac上对话框移动的问题。当我移动框架时,对话框相对于框架移动。我需要类似于windows对话框的静态对话框。我搜索了很多,但没有得到解决方案。代码如下
public class Parent extends JFrame{
public Parent() {
setVisible(true);
setSize(200,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
new Child(this);
}
public static void main(String[] args)
throws InvocationTargetException, InterruptedException{
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
new Parent();
}
});
}
class Child extends JDialog{
public Child(Parent parent) {
super(parent);
setType(JFrame.Type.UTILITY);
setVisible(true);
setSize(100, 100);
}
}
}
答案 0 :(得分:2)
这是JDK中列出的已知错误:https://bugs.openjdk.java.net/browse/JDK-7199846。
不幸的是,列出的唯一解决方法是将null
传递给JDialog
构造函数。
示例:
class Child extends JDialog {
public Child(Parent parent) {
super((JFrame)null);
setType(JFrame.Type.UTILITY);
setVisible(true);
setSize(100, 100);
}
}