2012-11-29 2 views
0

У меня есть Jpanel, который максимизируется при нажатии кнопки. Я делаю это, задавая размеры экрану, а затем вызываю setLocationRelativeTo (null). Это прекрасно работает, если у меня есть панель в основном мониторе, но когда панель находится на другом мониторе, кнопка щелчка всегда делает панель перемещаться на основной монитор. Есть ли способ получить текущий монитор панели и использовать его для нового местоположения. Заранее спасибо.java awt setLocationRelativeTo с несколькими мониторами p

+1

http://stackoverflow.com/questions/10888131/determine-windows-display-number-and-or-layout-via-java – Aubin

+0

Привет, Я видел эту ссылку, в моем случае есть нет проблем, если панель уже находится в первичном мониторе, так как нажатие кнопки перемещает окно на основной монитор. Чтобы быть более ясным, я хочу идентифицировать монитор, в котором сейчас находится панель, пользователь может перемещать его между мониторами. Я хочу найти, в каком мониторе находится окно, и установить новое место тоже. как это можно сделать с помощью GraphicsConfiguration? Я не мог понять это из Javadocs. – vumaasha

+0

http://stackoverflow.com/questions/1248386/how-do-i-deetermine-which-monitor-a-swing-mouse-event-occurs-in Следуя приведенной выше теме, помогли – user111093

ответ

0

У меня есть только один экран дома, и я вернусь к своей работе в понедельник, но следующий код устанавливает заголовок JFrame на «\ Display0» под Windows Seven 64 бит. Я полагаю, что эта строка является идентификатором экрана, а второй экран называется «\ Display1».

Я предлагаю, чтобы запустить это приложение на полиэкранном ПК, чтобы оценить его.

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(); }}); 
    } 
} 
Смежные вопросы