Ciao ragazzi...ho questo codice molto semplice e mi succede una cosa che non riesco a capire...chi mi dà delle delucidazioni?
codice:
public class Window extends JFrame{
	private JPanel container;
	public Window(String t){
		super(t);
		this.container = (JPanel) this.getContentPane();
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.toFront();
	}
	public void setIcon(String imgPath){
		this.setIconImage(Toolkit.getDefaultToolkit().getImage(imgPath));
		this.setSize((int)Toolkit.getDefaultToolkit().getScreenSize().getWidth()/2, (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight()/2);
	}
	public void maximize(){
		this.setExtendedState(Frame.MAXIMIZED_BOTH);
	}
	public void addBackgroundImage(String imgPath){
		this.container.add(new JLabel(new ImageIcon(imgPath)));
	}
	public void setProva(){
		this.container.add(new JLabel("Prova"));
	}
	public void setBackground(Color c){
		System.out.println(container.toString());
	}
}

-------------------------------------------------

public class TestFrame{
	public static void main(String[] s){
		Window w = new Window("Titolo");
		w.setProva();
		w.maximize();
		w.setVisible(true);
	}
}
Il problema è che se nel metodo setBackground utilizzo un richiamo al campo container ricevo un'eccezione:
codice:
Exception in thread "main" java.lang.NullPointerException
	at Window.setBackground(Window.java:39)
	at javax.swing.JFrame.frameInit(Unknown Source)
	at javax.swing.JFrame.<init>(Unknown Source)
	at Window.<init>(Window.java:19)
	at TestFrame.main(TestFrame.java:5)
e non riesco a capire il motivo