1

我正在为 windows 和 mac 创建一个应用程序。我在框架上显示一个对话框。它在窗口上工作正常,但我面临着关于 mac 上对话框移动的问题。当我移动 frame 时,对话框相对于 frame 移动。我需要类似于 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);

        }
    }
}
4

1 回答 1

2

这是列出的 JDK 中的一个已知错误:https ://bugs.openjdk.java.net/browse/JDK-7199846 。

不幸的是,列出的唯一解决方法是传递nullJDialog构造函数。

例子:

class Child extends JDialog {
        public Child(Parent parent) {
            super((JFrame)null);
            setType(JFrame.Type.UTILITY);
            setVisible(true);
            setSize(100, 100);
        }
}
于 2014-10-12T07:47:47.587 回答