En JAVA, cambiar la resolución con setDisplayMode para la aplicación de pantalla completa

Soy un principiante en el lenguaje JAVA y estoy tratando de aprender cómo crear aplicaciones de pantalla completa.

Estoy tratando de crear una aplicación simple donde, cuando se ejecuta, muestra una pantalla completa con fondo azul y una simple línea de texto en el centro de la pantalla (comienza en la posición 400x300). La resolución de la aplicación se establece en 800x600.

Estoy ejecutando el código en un Macbook Air, ejecutando OSX Lion, con una resolución de pantalla de 1440x900. El problema es que, a pesar de tener un fondo azul como esperaba, el texto solo aparece en la parte superior izquierda de la pantalla. La posición del texto continuaría moviéndose hacia abajo y hacia la derecha a medida que aumente su posición hasta que llegue a más de 1440x900 cuando desaparezca. Supongo que la resolución de la pantalla todavía se establece en 1440x900 como opuesta a 800x600.

Aquí están mis clases principales:

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);
    }

}

Y aquí está el constructor para la clase de pantalla y el método de la clase de pantalla que establece la aplicación en pantalla completa

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){}
        }

    }

Si alguien pudiera indicarme por qué la resolución no se está configurando correctamente, sería muy apreciado.

Respuestas a la pregunta(2)

Su respuesta a la pregunta