代码之家  ›  专栏  ›  技术社区  ›  Jay Askren

如何设置对话框的位置,使其在父框架中居中?

  •  1
  • Jay Askren  · 技术社区  · 14 年前

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

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

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

    2 回复  |  直到 12 年前
        1
  •  1
  •   Jay Askren    14 年前

    我知道了。我必须将setLocationRelativeTo(父级)移动到构造函数的末尾。需要在调用pack()之后调用它,我在in it方法中调用了pack()。

    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
  •  0
  •   Jim    14 年前

    我做了类似的事,但我用

    Dimension dim = Toolkit.getDefaultToolkit()
    

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

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

    我希望这有帮助。

    推荐文章