HI,
ich programmiere derzeit 4gewinnt habe mir zur optischen Darstellung folgendes überlegt. Ich habe ein JFrame und bis zu 10(je nachdem wieviele spalten) JPanels. und in diesen JPanels fliegen bilder(in form von steinen) herunter, nun habe ich bei der initialisierung der JPanels ein Problem:
[HIGHLIGHT="Java"]public class Spielfeld extends JFrame implements ActionListener, KeyListener
{
Spalten_Panels sp[];
//----------Konstruktor----------
public Spielfeld()
{
//super("...gegen....");
init();
}
void init()
{
this.setTitle("... gegen ...");
this.setBounds(getX(), getY(), 600, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(null);
this.setResizable(true);
//Dropbuttons
for (int s = 0; s < spalten; s++)
{
btnDrop = new JButton("<html> |<br> V</html>");
btnDrop.setBounds(s*60+s*2+10, 10, 60, 60);
btnDrop.addActionListener(this);
this.add(btnDrop);
}
//Weitere Buttons
//Spalten_Panels
for (int s = 0; s < spalten; s++)
{
sp = new Spalten_Panels(s, spalten, zeilen);
//spielFeldPanel.setBounds(s*62+10, 75, 60, 60*zeilen+zeilen*2);
//spielFeldPanel.setBackground(Color.WHITE);
//spielFeldPanel.addMouseListener(new PanelListener());
this.add(sp);
}
}
}
class Spalten_Panels extends JPanel
{
public Spalten_Panels(int s, int spalten, int zeilen)
{
this.setBounds(s*62+10, 75, 60, 60*zeilen+zeilen*2);
this.setBackground(Color.WHITE);
this.setVisible(true);
}
}[/HIGHLIGHT]
Bei der Ausführung kommt aber nur:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Frames.Spielfeld.init(Spielfeld.java:84) <-- ist: sp = new Spalten_Panels(s, spalten, zeilen);
at Frames.Spielfeld.<init>(Spielfeld.java:51)
Was mache ich falsch? Oder die andere Frage wäre auch, geht das überhaupt mit einem Array oder gibt es ingesamt eine bessere Lösung?
Vielen Dank im voraus
ich programmiere derzeit 4gewinnt habe mir zur optischen Darstellung folgendes überlegt. Ich habe ein JFrame und bis zu 10(je nachdem wieviele spalten) JPanels. und in diesen JPanels fliegen bilder(in form von steinen) herunter, nun habe ich bei der initialisierung der JPanels ein Problem:
[HIGHLIGHT="Java"]public class Spielfeld extends JFrame implements ActionListener, KeyListener
{
Spalten_Panels sp[];
//----------Konstruktor----------
public Spielfeld()
{
//super("...gegen....");
init();
}
void init()
{
this.setTitle("... gegen ...");
this.setBounds(getX(), getY(), 600, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(null);
this.setResizable(true);
//Dropbuttons
for (int s = 0; s < spalten; s++)
{
btnDrop
btnDrop
btnDrop
this.add(btnDrop
}
//Weitere Buttons
//Spalten_Panels
for (int s = 0; s < spalten; s++)
{
sp
//spielFeldPanel
//spielFeldPanel
//spielFeldPanel
this.add(sp
}
}
}
class Spalten_Panels extends JPanel
{
public Spalten_Panels(int s, int spalten, int zeilen)
{
this.setBounds(s*62+10, 75, 60, 60*zeilen+zeilen*2);
this.setBackground(Color.WHITE);
this.setVisible(true);
}
}[/HIGHLIGHT]
Bei der Ausführung kommt aber nur:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Frames.Spielfeld.init(Spielfeld.java:84) <-- ist: sp
at Frames.Spielfeld.<init>(Spielfeld.java:51)
Was mache ich falsch? Oder die andere Frage wäre auch, geht das überhaupt mit einem Array oder gibt es ingesamt eine bessere Lösung?
Vielen Dank im voraus
Zuletzt bearbeitet von einem Moderator: