在mac中的儿童框架运动

时间:2014-10-12 07:36:49

标签: java swing swingutilities

我正在为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);

        }
    }
}

1 个答案:

答案 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);
        }
}