# jPanel-Array erzeugen



## TMUF (26. Jun 2010)

Ich möchte einen Integerwert verwenden um damit ein jPanel auszuwählen.

z.B.:
int x=5;
jPanelx.setBackground(Color.RED);

(Ich benötige dies um ein 4gewinnt zu programmieren.)
So dass das Programm z.B. bemerkt, wann 4 Steine in einer Diagonalen liegen oder damit es weiss, wo das Programm einen Stein hinlegen muss wenn man auf eines der 42 Felder klickt.
Habe erst gerade mit Java begonnen und habe keine Ahnung von der Materie.
Danke für eure Hilfe


----------



## Eldorado (26. Jun 2010)

Schmeiß deine panels doch einfach in ein Array:

```
panel[x].setBackground(Color.RED);
```
Wenn du grade erst mit Java begonnen hast, ist das mit einer grafischen Oberfläche wahrscheinlich zu viel des guten. Du benötigst erstmal die Grundlagen.


----------



## TMUF (26. Jun 2010)

Vielen Dank für die schnelle Antwort.
Ich habe über eine Stunde gewartet, aber nicht bemerkt, dass mir jemand geantwortet hat. (Anfänger) :-(

Die Idee mit dem Array wäre mir nie in den Sinn gekommen. War genau das was ich als Antwort brauchte, danke.


----------



## TMUF (26. Jun 2010)

Nun habe ich bemerkt, dass ich nicht weiss, wie man mit panels ein Array macht. 
Wie und wo muss man so ein Array erstellen?? - Keine Ahnung


```
JPanel[] panel = new JPanel();
```

geht aber irgendwie nicht
danke für eine Antwort


----------



## eRaaaa (26. Jun 2010)

```
JPanel[] panels = new JPanel[ANZAHL];

//......
JPanel p1 = new JPanel();
//.....
panels[0] = p1;
//usw.
```


----------



## TMUF (26. Jun 2010)

Wenn ich das so hineinkopiere wird alles rot unterstrichen (die Anzahl habe ich abgeändert)
was mache isch falsch??


----------



## eRaaaa (26. Jun 2010)

Zeige doch mal Code...und

- 
	
	
	
	





```
import javax.swing.JPanel;
```
 hast du aber?
- wo steht der Code?


----------



## TMUF (26. Jun 2010)

habe import javax.swing.JPanel; vergessen
danke, denke jetzt sollte es gehen


----------



## TMUF (26. Jun 2010)

geht irgendwie immer noch nicht
bei Zeile 11 ist ein Fehler
was muss ich dann noch machen, dass es zum Beispiel das 5.Feld (wieder 4gewinnt) rot färbt, wenn ich es mit: int x = 5; mache möchte und wie und wo existieren diese Arrays eigentlich, werden diese im Fenster angezeigt oder existieren diese nur theoretisch und müssen mit anderen panels verknüpft werden??

Code:

```
import javax.swing.JPanel;
public class paneltest extends javax.swing.JFrame {
    public paneltest() {
        initComponents();
    }
JPanel[] panels = new JPanel[42];
 
//......
JPanel p1 = new JPanel();
//.....
panels[0] = p1;
//usw.
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new paneltest().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    // End of variables declaration

}
```


----------



## L-ectron-X (27. Jun 2010)

Deine Panels kannst du in einer Schleife erzeugen lassen:

```
JPanel[] panels = new JPanel[42];

for(int i = 0; i < panels.length; i++) {
  panels[i] = new JPanel();
}
```


----------



## TMUF (27. Jun 2010)

Nun wenn ich das so schreibe sind die Fehler weg, doch wenn ich in einem Panel etwas speichern möchte oder z.B. die Hintergrundfarbe ändern möchten kommt es zu Schwierigkeiten. In Zeile 12 ist ein Fehler. Wie kann ich die Zahl 4 oder irgendwelchen Text im Panel speichern und wie kann man eigentlich diese Panels in einem Fenster anzeigen lassen? Danke für jede Antwort.  


```
public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new paneltest().setVisible(true);
            }
        });
        int x=0;
        JPanel[] panels = new JPanel[42];
        for(int i = 0; i < panels.length; i++) {
            panels[i] = new JPanel();
        }
        panels[0]= 4; 
    }
```


----------



## eRaaaa (27. Jun 2010)

[java=12]
 panels[0]= 4; 
[/code]

Was soll das denn auch für einen Sinn haben?
Also du solltest dir vllt bevor du mit GUI/Swing anfängst erstmal die Grundlagen anschauen.
z.B. Arrays.

Wie man die anzeigen kann? Genau so wie sonst auch, musst sie halt irgendwo hinzufügen...


----------



## L-ectron-X (27. Jun 2010)

Im Verlauf dieses Threads wird eine Vorlage für ein 4Gewinnt gezeigt, vielleicht hilft dir das auch.
'Vier Gewinnt' programmieren - Byte-Welt Forum


----------

