ho creto una classe astratta che estende JWindow con dentro i vari component...
qui:
codice:
public abstract class AbstractView extends JWindow implements WindowInterface {
private Music music;
private JLabel titleLbl;
private static JPanel panel;
private JLabel gif1;
public AbstractView(){
setMusic(music);
setSize(500,431);
setLocation(400, 150);
setAlwaysOnTop(true);
getContentPane().setLayout(new CardLayout(0, 0));
getContentPane().add(initView());
setVisible(true);
}
/**
* @return music
*/
protected Music getMusic() {
return music;
}
/**
* @param music music da impostare
*/
protected void setMusic(Music music) {
this.music = music;
}
public Component initView(){
this.setLayout(new CardLayout(0,0));
titleLbl = new JLabel(new ImageIcon(tetrisAttack.Application.class.getResource("text.gif")));
titleLbl.setBounds(6, 10, this.getWidth(),88);
gif1 = new JLabel(new ImageIcon(tetrisAttack.Application.class.getResource("1.gif")));
gif1.setBounds(0,0,500,431);
this.add(this.createMenu());
this.add(gif1);
return this;
}
protected abstract Component createMenu();
}
nel metodo this.add(this.createMenu()); dichiarato sotto astratto,ho crato poi due specializzazioni che implementano tale metodo in due modi diversi,quando però le inizializzo la compilazione riporta questo errore Exception in thread "main" java.lang.IllegalArgumentException: adding container's parent to itself cosa vuol dire?