Как я могу создать приложение Java Swing, которое покрывает строку заголовка Windows? - PullRequest
5 голосов
/ 06 апреля 2009

Я работаю над приложением java swing, которое будет использоваться в психологическом эксперименте, и исследователи попросили, чтобы я сделал программу "затемнение экрана", чтобы не было никаких внешних раздражителей для пользователя. Они хотят, чтобы приложение Swing было полноэкранным, без заголовка или кнопок сворачивания / разворота / закрытия в верхней части.

Программное обеспечение будет работать в среде Windows XP с использованием JavaSE 6.

Как я могу это сделать, и, если применимо, предоставьте фрагмент кода.

Спасибо!

Ответы [ 3 ]

11 голосов
/ 06 апреля 2009

Использовать полноэкранные интерфейсы Java API?

http://java.sun.com/docs/books/tutorial/extra/fullscreen/exclusivemode.html

http://www.artificis.hu/2006/03/16/java-awtswing-fullscreen

JFrame fr = new JFrame();
fr.setResizable(false);
if (!fr.isDisplayable()) {
    // Can only do this when the frame is not visible
    fr.setUndecorated(true);
}
GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
try {
  if (gd.isFullScreenSupported()) {
    gd.setFullScreenWindow(fr);
  } else {
    // Can't run fullscreen, need to bodge around it (setSize to screen size, etc)
  }
  fr.setVisible(true);
  // Your business logic here
} finally {
  gd.setFullScreenWindow(null);
}
9 голосов
/ 06 апреля 2009

Используйте свойство setUndecorated(true). Обратите внимание, что это должно быть сделано до того, как рамка станет видимой.

JFrame frame = new JFrame();
Toolkit tk = Toolkit.getDefaultToolkit();
frame.setBounds(new Rectangle(new Point(0, 0), tk.getScreenSize()));
frame.setUndecorated(true);
frame.setVisible(true);
0 голосов
/ 27 декабря 2012

Я знаю, что эта ветка старая, но я нашла ее, когда пыталась сделать то же самое сама. Я не мог найти какие-либо решения, которые хотел бы использовать, поэтому я придумал это. Я обнаружил, что приведенное ниже решение не только работает, но и намного проще, чем приведенные выше ответы.

JFrame frame = new JFrame();
frame.setResizable(false);
frame.setUndecorated(true);
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
frame.setSize(dim);
frame.setVisible(true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...