下面的代码演示了如何让JFrame全屏显示:
import javax.swing.JFrame;
import java.awt.Color;
import java.awt.DisplayMode;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.RenderingHints;
import java.awt.Window;
public class FullScreenTest extends JFrame {
private static final long serialVersionUID = 1L;
public static void main(String[] args) {
// GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();
// String []s=ge.getAvailableFontFamilyNames();
FullScreenTest test = new FullScreenTest();
DisplayMode displayMode = new DisplayMode(1024, 768, 16,
DisplayMode.REFRESH_RATE_UNKNOWN);
test.run(displayMode);
}
public void run(DisplayMode displayMode) {
setBackground(Color.BLUE);
setForeground(Color.WHITE);
setFont(new Font("Courier New", Font.PLAIN, 24));
SimpleScreenManager screen = new SimpleScreenManager();
try {
screen.setFullScreen(displayMode, this);
try {
Thread.sleep(5000);//5秒后退出全屏
} catch (InterruptedException ex) {
}
} finally {
screen.restoreScreen();
}
}
public void paint(Graphics g) {
if (g instanceof Graphics2D) {
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
g2.drawString("hello full screen.", 400, 200);
}
}
}
/**
* The SimpleScreenManager class manages initializing and displaying full screen
* graphics modes.
*/
class SimpleScreenManager {
private GraphicsDevice device;
public SimpleScreenManager() {
GraphicsEnvironment environment = GraphicsEnvironment
.getLocalGraphicsEnvironment();
device = environment.getDefaultScreenDevice();
}
public void setFullScreen(DisplayMode displayMode, JFrame jFrame) {
jFrame.setUndecorated(true);
jFrame.setResizable(false);
device.setFullScreenWindow(jFrame);
if (displayMode != null && device.isDisplayChangeSupported()) {
try {
device.setDisplayMode(displayMode);
} catch (IllegalArgumentException ex) {
// ignore - illegal mode for this device
}
}
}
public Window getFullScreenWindow() {
return device.getFullScreenWindow();
}
public void restoreScreen() {
Window window = device.getFullScreenWindow();
if (window != null) {
window.dispose();
}
device.setFullScreenWindow(null);
}
}