G
GuestMike
Gast
Schönen guten Abend,
wie mein Titel schon sagt, ich bin dabei ein Schach zu programmieren. Ich habe mir das ganze mit einem LayeredPane vorgestellt. AU dem eien Layer sind meine FIguren und ein paar Layer dadrunter mein Brett. Ich realisiere das ganze mit 2 JLabel[] (eines für das Brett eines für die Figuren. Jedes Array hat ein eigenes Panel welches ich dem LayeredPane übergebe. Nur leider zeigt er nur ein JPanel bei mir an. Entweder das ,welches ich als erstes adde oder auf layer 0 packe.
Danke euch für eure Hilfe
wie mein Titel schon sagt, ich bin dabei ein Schach zu programmieren. Ich habe mir das ganze mit einem LayeredPane vorgestellt. AU dem eien Layer sind meine FIguren und ein paar Layer dadrunter mein Brett. Ich realisiere das ganze mit 2 JLabel[] (eines für das Brett eines für die Figuren. Jedes Array hat ein eigenes Panel welches ich dem LayeredPane übergebe. Nur leider zeigt er nur ein JPanel bei mir an. Entweder das ,welches ich als erstes adde oder auf layer 0 packe.
Java:
public class GamePanel extends javax.swing.JLayeredPane {
JLabel[][] gameLabelField;
JLabel[][] gameLabelCharacters;
public GamePanel() {
this.setLayout(new FlowLayout());
JPanel fieldPanel = new JPanel();
JPanel characterPanel = new JPanel();
fieldPanel.setBounds(1, 1, 528, 528);
characterPanel.setBounds(1, 1, 528, 528);
this.add(characterPanel, 10);
this.add(fieldPanel, 11);
fieldPanel.setLayout(new GridLayout(8, 8, 1, 1));
characterPanel.setLayout(new GridLayout(8, 8, 1, 1));
this.gameLabelField = new JLabel[8][8];
this.gameLabelCharacters = new JLabel[8][8];
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
this.gameLabelCharacters[i][j] = new JLabel();
this.gameLabelField[i][j] = new JLabel();
fieldPanel.add(gameLabelField[i][j]);
characterPanel.add(gameLabelCharacters[i][j]);
if ((j + i) % 2 == 0) {
gameLabelField[i][j].setIcon(new ImageIcon("Dark_Brown.png"));
} else {
gameLabelField[i][j].setIcon(new ImageIcon("Light_Brown.png"));
}
}
}
this.gameLabelCharacters[5][5].setIcon(new ImageIcon("Black_Rook.png"));
}
public static void main(String args[]) {
JFrame frame = new JFrame("Test");
frame.add(new GamePanel());
frame.setSize(8 * 64 + 16, 8 * 64 + 16);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
System.out.println(frame.getLayeredPane().getComponentsInLayer(100).toString());
}
}
Danke euch für eure Hilfe