Witam, chciałbym dodać do mojej clasy głównej component opcję full screen. Niestety jest ona napisana w ten sposób, że nie wiem jak to teraz zrobić.

/*
 
import java.applet.*;
import javax.swing.*;
import java.awt.*;
import java.net.Socket;
import java.util.ArrayList;

public class Component extends Applet implements Runnable{
    private static final long serialVersionUID = 1L;
    

    
    private Image screen;
    
   
    public static Value value;
   
    
    public static Rectangle single_player_Button = new Rectangle(150, 100, 100, 25);
    public static Rectangle multi_player_Button = new Rectangle(150, 150, 100, 25);
    public static Rectangle quitButton = new Rectangle(150, 200, 100, 25);
    
    
    
    public Component() {    
        setPreferredSize(value.size);
        
        addKeyListener(new Listening());
        addMouseListener(new Listening());
        addMouseMotionListener(new Listening());
        addMouseWheelListener(new Listening());
    }
    public void start(){   
        requestFocus();
        
        value.isRunning = true;        
        new Thread(this).start();
    }
    public void stop(){
        value.isRunning = false;
    }
    
    private static JFrame frame;
    
    public static void main(String args[])throws Exception{
        
        Component component = new Component();
        
        
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
 
 		final JFrame fullscreenFrame = new JFrame();
 		fullscreenFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 		fullscreenFrame.setUndecorated(true);
 		fullscreenFrame.setResizable(false);
 		fullscreenFrame.add(component);
                fullscreenFrame.pack(); 
 		fullscreenFrame.validate();
 
 		GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().setFullScreenWindow(fullscreenFrame);
 	
        // Jeśli uzyjemy kodu z frame to wszystko działa, ale nie ma FullScreen
        
        
        
        /*frame = new JFrame();
        
        frame.add(component);
        frame.pack(); 
        
        value.realSize = new Dimension(frame.getWidth(), frame.getHeight());
        frame.setTitle(value.name);        
        frame.setResizable(true);
        frame.setLocation(0, 0);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.setAlwaysOnTop(true);*/
        
        
        component.start();
    }
    
    public void tick(){ 
        
        if(frame.getWidth() != value.realSize.width || frame.getHeight() != value.realSize.height){
            frame.pack();
        }
        
        //tutaj wykonuje sie ważny kod dla programu (usunąłem, żeby niepotrzebnie nie utrudniać zrozumienie kodu)
    }
    
    public void render(){
        Graphics g = screen.getGraphics();
        
        if(!value.gameStarted)
        {
	        g.setFont(new Font("Arial", Font.BOLD, 26));
	        g.setColor(Color.WHITE);
	        g.drawString("Gra Gwozdzia!", 125, 75);
	        
	        g.setColor(Color.CYAN);
	        g.fillRect(single_player_Button.x, single_player_Button.y, single_player_Button.width, single_player_Button.height);
	        g.setFont(new Font("Arial", Font.BOLD, 12));
	        g.setColor(Color.GRAY);
	        g.drawString("Start Single Player", single_player_Button.x+20, single_player_Button.y+17);
	        
	        g.setColor(Color.CYAN);
	        g.fillRect(multi_player_Button.x, multi_player_Button.y, multi_player_Button.width, multi_player_Button.height);
	        g.setFont(new Font("Arial", Font.BOLD, 12));
	        g.setColor(Color.GRAY);
	        g.drawString("Multi Player!!!", multi_player_Button.x+20, multi_player_Button.y+17);
	        
	        g.setColor(Color.CYAN);
	        g.fillRect(quitButton.x, quitButton.y, quitButton.width, quitButton.height);
	        g.setColor(Color.GRAY);
	        g.drawString("Quit Game", quitButton.x+20, quitButton.y+17);
                
        }
        else
        {
        
	        
        
        }
       
        g = getGraphics();
        
        g.drawImage(screen, 0, 0, value.size.width, value.size.height, 0, 0, value.pixel.width, value.pixel.height, null);
        g.dispose();       
        
    }
    
    
    public void run(){
        screen = createVolatileImage(value.pixel.width, value.pixel.height);
        
        while(value.isRunning){
            
            tick();
            render();
                               
            try{
                Thread.sleep(5);
            }catch(Exception e){}
        }
    }    
}

Niestety przy tej budowie występuje problem w szczególności z tymi linijkami kodu:

if(frame.getWidth() != value.realSize.width || frame.getHeight() != value.realSize.height){
           frame.pack();
        }
 Graphics g = screen.getGraphics();

Problemem oczywiście jest to, że fullscreen jest, ale cały czarny, a powinien wyświetlać to co znajduje się w metodzie render.