Создание полноэкранного экрана панели Java
Как бы вы сделали полноэкранный режим JComponent
(панель, рамка, окно и т.д.), чтобы он также перекрывал все на экране, включая панель запуска Windows?
Я не хочу менять разрешение или что-либо с помощью графического устройства, такого как bitdepth и т.д., я просто хочу перекрывать все остальное.
Ответы
Ответ 1
Вы можете попробовать некоторые из кодов на этой странице, позволяя контейнеру заполнять экран (так что это не решение для отдельного пользователя компонент, но для набора компонентов в контейнере, таком как JFrame
)
public class MainWindow extends JFrame
{
public MainWindow()
{
super("Fullscreen");
getContentPane().setPreferredSize( Toolkit.getDefaultToolkit().getScreenSize());
pack();
setResizable(false);
show();
SwingUtilities.invokeLater(new Runnable() {
public void run()
{
Point p = new Point(0, 0);
SwingUtilities.convertPointToScreen(p, getContentPane());
Point l = getLocation();
l.x -= p.x;
l.y -= p.y;
setLocation(l);
}
});
}
...
}
Ответ 2
Просмотрите этот учебник, описывающий API полноэкранного режима Java.
Пример кода (взято из учебника). Обратите внимание, что код работает на Window
, поэтому для этого вам понадобится встроить JPanel
с Window
(например, JFrame
).
GraphicsDevice myDevice;
Window myWindow;
try {
myDevice.setFullScreenWindow(myWindow);
...
} finally {
myDevice.setFullScreenWindow(null);
}
Ответ 3
Вам необходимо использовать следующий API: http://java.sun.com/docs/books/tutorial/extra/fullscreen/index.html
Переход на полный экран не так прост, как создание большой панели, вам нужно посмотреть в базовую графику ОС. Но ваш JPanel-код должен хорошо переводиться.
Ответ 4
Мне нужно было много искать, делать то же самое. Здесь полностью рабочая версия этого шага, так что я могу найти его позже и использовать его.
Шаг 1: создайте файл с именем fullscreen.java
Шаг 2: скопируйте этот код и вставьте его как есть:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class fullscreen extends Window
{
private Button button;
public fullscreen()
{
super(new Frame());
button = new Button("Close");
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
setLayout(new FlowLayout());
add(button);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(0,0,screenSize.width, screenSize.height);
}
public static void main(String[] args)
{
// This will take over your whole screen tested and works in my:
// Fedora 12/13/14
// CentOS 5.0
// if this works for you, in other platforms, please leave a comments which OS it worked.
// happy coding!
new fullscreen().setVisible(true);
}
}
Шаг 3: скомпилируйте код и запустите
Готово.
Ответ 5
Если бы я был вами, я бы попытался заставить Java не рисовать границу Jframe, а затем заставить ее взять весь экран.
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;
import javax.swing.JFrame;
public class FenNoBorder extends JFrame {
public FenNoBorder () {
setUndecorated(true);
setVisible(true);
GraphicsEnvironment graphicsEnvironment=GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle maximumWindowBounds=graphicsEnvironment.getMaximumWindowBounds();
setBounds(maximumWindowBounds);
}
}