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