0

ボタンクリックで最大化されるJpanelがあります。寸法を画面サイズに設定してから setLocationRelativeTo(null) を呼び出します。これは、パネルがプライマリ モニターにある場合は正常に機能しますが、パネルが他のモニターにある場合、ボタンをクリックすると常にパネルがプライマリ モニターに移動します。パネルの現在使用されているモニターを取得し、同じものを新しい場所に使用する方法はありますか。前もって感謝します。

4

1 に答える 1

0

家には画面が 1 つしかなく、月曜日に仕事に戻りますが、次のコードは Windows Seven 64 ビットで JFrame のタイトルを「\Display0」に設定します。この文字列が画面の ID であり、2 番目の画面の名前が「\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 に答える