0

我有 Jpanel,它在单击按钮时最大化。我通过将尺寸设置为屏幕大小然后调用 setLocationRelativeTo(null) 来做到这一点。如果我在主监视器中有面板,这很好用,但是当面板在其他监视器上时,单击按钮总是使面板移动到主监视器。有没有办法获取当前使用的面板监视器并将其用于新位置。提前致谢。

4

1 回答 1

0

我家里只有一个屏幕,周一会回到工作岗位,但以下代码在 Windows 7 64 位下将 JFrame 的标题设置为“\Display0”。我想这个字符串是屏幕的 ID,第二个屏幕被命名为“\Display1”。

我建议在多屏 PC 上运行这个应用程序来评估它。

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class Frm
   extends
      JFrame
   implements
      ActionListener
{
   Frm()
   {
      setDefaultCloseOperation( EXIT_ON_CLOSE );
      setPreferredSize( new Dimension( 640, 480 ));
      setLayout( new BorderLayout());
      JButton getScreenBtn = new JButton( "Get Screen ID" );
      add( getScreenBtn, BorderLayout.CENTER );
      getScreenBtn.addActionListener( this );
      pack();
      setLocationRelativeTo( null );
      setVisible( true );
   }

   @Override
   public void actionPerformed( ActionEvent e ) {
      setTitle( getGraphicsConfiguration().getDevice().getIDstring());
   }

   public static void main( String[] args ) {
      SwingUtilities.invokeLater( new Runnable() {
         @Override public void run() { new Frm(); }});
   }
}
于 2012-11-29T22:22:32.987 回答