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