如何获取JFrame在屏幕中的位置以放入JDialog?

问题描述 投票:0回答:1

我想知道是否可以获取 JFrame 屏幕上的位置,并将相同的位置放入 JDialog 中。我的意思是,我想做的是,当我从 JFrame 按钮打开 JDialog 时,我想将 JDialog 放在与主 JFrame 相同的位置,也许使用 .setLocationRelativeto() 方法,有什么想法可以做到吗? ,谢谢!.

   this.setUndecorated(true);
   initComponents();
   this.setBounds(WIDTH, WIDTH, 444, 308);
   JDialog dialog=new JDialog();

我想采用与 mainJFrame 相同的位置,但我不知道如何做....

   dialog.setLocationRelativeTo();  
java swing jframe jdialog
1个回答
2
投票

是否可以获取JFrame屏幕上位置的位置

ActionListener
中的代码类似于:

Component c = (Component)event.getSource();
Window window = SwingUtilities.windowForComponent(c);
JDialog dialog = new JDialog(...);
...
dialog.pack();
dialog.setLocation( window.getLocation() );
dialog.setVisible( rue ;

或者您可以使用以下方法将对话框置于框架中心:

dialog.setLocationRelativeTo( window );
dialog.setVisible( true );

编辑郑重声明,

JFrame
扩展了
Window
,所以如果您已经有了
JFrame
,那可能就足够了。

© www.soinside.com 2019 - 2024. All rights reserved.