【问题标题】:How do I set the position of a dialog so it is centered in it's parent frame?如何设置对话框的位置,使其在其父框架中居中?
【发布时间】:2012-06-26 15:59:03
【问题描述】:

我有一个带有如下构造函数的对话框类

public SampleDialog(JComponent parent, String title){
    super((Frame)SwingUtilities.getAncestorOfClass(Frame.class, parent), title, false);
    setLocationRelativeTo(parent);
    init();
  }

但是,这会将对话框定位为使其右上角位于其父级的中心。我希望对话框的中心位于父组件的中心之上。我该怎么做呢?我做错了吗?

【问题讨论】:

    标签: java swing positioning jdialog


    【解决方案1】:

    我想通了。我不得不将 setLocationRelativeTo(parent) 移到构造函数的末尾。它需要在调用 pack() 之后调用,我在 init 方法中调用了它。

    public SampleDialog(JComponent parent, String title){
        super((Frame)SwingUtilities.getAncestorOfClass(Frame.class, parent), title, false);
        init();
        setLocationRelativeTo(parent);
      }
    
    init(){
      // initialization code goes here
      pack();
    }
    

    【讨论】:

      【解决方案2】:

      我做了类似的事情,但我用过

      Dimension dim = Toolkit.getDefaultToolkit()
      

      然后使用 .getScreenSize,但我相信您可以使用它来获取父应用程序的宽度和高度,如下所示:

      myApplication.setLocation((int)dim.getWidth(),(int)dim.getHeight());
      

      我希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-17
        • 1970-01-01
        相关资源
        最近更新 更多