我有一个按钮点击最大化的Jpanel。我通过将维度设置为屏幕大小然后调用setLocationRelativeTo(null)来实现。如果我在主监视器中有面板,这可以正常工作,但当面板在其他监视器上时,单击按钮总是使面板移动到主监视器。有没有办法获得当前使用的面板监视器,并使用相同的新位置。提前谢谢。
答案 0 :(得分: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(); }});
}
}