В JAVA изменение разрешения с помощью setDisplayMode для полноэкранного приложения

Я новичок в языке JAVA и пытаюсь научиться создавать полноэкранные приложения.

Я пытаюсь создать простое приложение, в котором при запуске отображается полный экран с синим фоном и простой строкой текста в центре экрана (начинается с позиции 400x300). Разрешение приложения установлено на 800x600.

Я использую код на MacbookAir под OSX Lion с разрешением экрана 1440x900. Проблема в том, что, несмотря на то, что я получил синий фон, как я и ожидал, текст появляется только в верхней левой части экрана. Положение текста будет продолжать двигаться вниз и вправо по мере того, как я буду увеличивать его положение, пока оно не превысит 1440x900, когда оно исчезнет. Я предполагаю, что разрешение экрана все еще установлено на 1440x900 в отличие от 800x600.

Вот мой основной класс:

import java.awt.*;
import javax.swing.JFrame;

public class bucky extends JFrame {
    public static void main(String[] args){

        DisplayMode dm = new DisplayMode(800, 600, 16, DisplayMode.REFRESH_RATE_UNKNOWN);
        bucky b = new bucky();
        b.run(dm);
    }

    public void run(DisplayMode dm){
        setBackground(Color.BLUE); // Setting background color
        setForeground(Color.WHITE);
        setFont(new Font("Arial", Font.PLAIN, 24));

        //The Screen variable is going to be a screen object
        Screen s = new Screen();
        try{
            s.setFullScreen(dm, this); //this refers to whatever object we are working on, ie 's'
            try{
                //Once it is set to full screen, and wait for 5 second
                Thread.sleep(5000);
            }catch(Exception ex){};
        }
        finally{
            s.restoreScreen();
        }
    }

    public void paint(Graphics g){
        g.drawString("Test", 400, 300);
    }

}

А вот конструктор для класса Screen и метод из класса Screen, который устанавливает приложение в полноэкранный режим

private GraphicsDevice vc; // Gives an interface to graphics card/video card.

public Screen(){
    //env is environment variable, containing all graphics manipulation objects
    GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();

    //When we get environment and getDegaultScreen Device, we get access to the entire monitor, not just a window
    vc = env.getDefaultScreenDevice();

}

public void setFullScreen(DisplayMode dm, JFrame window){ 

        window.setUndecorated(true); 
        window.setResizable(false); 
        vc.setFullScreenWindow(window); 


        if(dm != null && vc.isDisplayChangeSupported()) {
            try{
                vc.setDisplayMode(dm); 
            }catch(Exception ex){}
        }

    }

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

Ответы на вопрос(2)

Ваш ответ на вопрос