Существует три сложных примера, которые могут вас заинтересовать в обучающих материалах по оракулу.
Хотите использовать высокопроизводительную графику в среде разработки Java?Вы всегда хотели запрограммировать игру, но ваши изображения не могли двигаться достаточно быстро?Ваша программа слайд-шоу не работала должным образом, потому что вы не контролировали разрешение экрана пользователя?Если вы задали какой-либо из этих вопросов, вам может подойти API полноэкранного эксклюзивного режима, представленный в выпуске 1.4.
CapabilitiesTest демонстрирует различные возможности буферизации, доступные для машины, на которой он запущен.
DisplayModeTest показывает приложение Swing, которое использует пассиврендеринг.Если доступен полноэкранный эксклюзивный режим, он перейдет в полноэкранный эксклюзивный режим.Если изменения режима отображения разрешены, он позволяет переключаться между режимами отображения.
MultiBufferTest входит в полноэкранный режим и использует мультибуферизацию черезактивный цикл рендеринга.
Взгляните на это:
oracle.com / tutorial / fullscreen
и это:
oracle.com/tutorial/fullscreen/example
РЕДАКТИРОВАТЬ:
Вот пример приложения, который делает то, что вы хотите:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DisplayModeChanger extends JFrame {
private GraphicsDevice device;
private static JButton changeDM = new JButton("800X600 @ 32 BIT 60HZ");
private boolean isFullScreenSupported = false;
public DisplayModeChanger(final GraphicsDevice device) {
this.device = device;
setDefaultCloseOperation(EXIT_ON_CLOSE);
changeDM.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DisplayMode dm = new DisplayMode(800, 600, 32, 60);
device.setDisplayMode(dm);
setSize(new Dimension(dm.getWidth(), dm.getHeight()));
validate();
}
});
}
public void goFullScreen() {
isFullScreenSupported = device.isFullScreenSupported();
setUndecorated(isFullScreenSupported);
setResizable(!isFullScreenSupported);
if (isFullScreenSupported) {
device.setFullScreenWindow(this);
validate();
} else {
pack();
setVisible(true);
}
}
public static void main(String[] args) {
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice defaultScreen = env.getDefaultScreenDevice();
DisplayModeChanger changer = new DisplayModeChanger(defaultScreen);
changer.getContentPane().add(changeDM);
changer.goFullScreen();
}
}