Ich versuche gerade ein Brettspiel zu programmieren. Damit die Spieler einen Character wählen können habe ich eine Characterwahl programmiert
(Siehe Bild unten).
Ich hab das Fenster in 3 Große JPanels aufgebaut (links,mitte,rechts) und am Ende mit einen BorderLayout zusammen gesetzt.
Mein Problem ist ich kann die Charaktere nicht zu den Spieler zuordnen. Der 1. Spieler soll auf einen der Bilder in der Mitte klicken und oben links bei ihn erscheinen.
Ich kann leider die einzelne JPanels nicht ansprechen, weil ich die mit einer schleife erstellt habe und gesetzt habe z. B. wenn ich versuche panel1 anzusprechen empfiehlt mir Eclipse die Variable zu erstellen.
Falls Ihr noch Informationen braucht, sagt bescheid.
Vielen Dank im Voraus!!!
Bild:

Code:
Links:
	
	
	
	
	
		
	
Die Mitte:
	
	
	
	
	
		
	
Rechts:
	
	
	
	
	
		
	
Frame:
Und am Ende werden die alle hinzugefügt
	
	
	
	
	
		
	
			
			(Siehe Bild unten).
Ich hab das Fenster in 3 Große JPanels aufgebaut (links,mitte,rechts) und am Ende mit einen BorderLayout zusammen gesetzt.
Mein Problem ist ich kann die Charaktere nicht zu den Spieler zuordnen. Der 1. Spieler soll auf einen der Bilder in der Mitte klicken und oben links bei ihn erscheinen.
Ich kann leider die einzelne JPanels nicht ansprechen, weil ich die mit einer schleife erstellt habe und gesetzt habe z. B. wenn ich versuche panel1 anzusprechen empfiehlt mir Eclipse die Variable zu erstellen.
Falls Ihr noch Informationen braucht, sagt bescheid.
Vielen Dank im Voraus!!!
Bild:

Code:
Links:
		Code:
	
	    private String[] nameForPanels = { "Nothing", "playerOne", "playerTwo", "playerThree", "playerFour", "playerFive",
            "playerSix" };
 //Panel für die Spieler auf der linken Seite
        playerLeft = new JPanel();
        playerLeft.setLayout(new BoxLayout(playerLeft, BoxLayout.Y_AXIS));
        JPanel createLeftPanel;
        for (int i = 1; i <= nameForPanels.length - 1; i = i + 2) {
            createLeftPanel = new JPanel();
            String name = String.format("panel%d", i);
            // ich kann leider den JPanel nicht ansprechen z.B mit panel1.setVisible(false), sonst empfehlt mir die Eclipse die Variable zu erstellen
            createLeftPanel.setName(name);
       
            JLabel label = new JLabel();
            String name2 = String.format("labelLeft%d", i);
            label.setText("Player: " + i + "...");
            label.setName(name2);
            createLeftPanel.add(label);
            createLeftPanel.setPreferredSize(new Dimension(300, createLeftPanel.getHeight()));
            createLeftPanel.addMouseListener(new MouseListener() {
                @Override
                public void mouseReleased(MouseEvent e) {
                    // TODO Auto-generated method stub
                }
                @Override
                public void mousePressed(MouseEvent e) {
                    System.out.println("Linker Panel");
                    
                     // der ActionListener ermittelt den richten Label, wenn meine Maus über den Label ist.
                    System.out.println("JPanel: " + label.getName());
                }
                @Override
                public void mouseExited(MouseEvent e) {
                    // TODO Auto-generated method stub
                }
                @Override
                public void mouseEntered(MouseEvent e) {
                    // TODO Auto-generated method stub
                }
                @Override
                public void mouseClicked(MouseEvent e) {
                    // TODO Auto-generated method stub
                }
            });
            playerLeft.add(createLeftPanel);Die Mitte:
		Code:
	
	        //Hintergrund wird gesetzt
        characterSelectionPanel = new SetBackgorund("img/table.jpg");
        GridLayout gridLayout = new GridLayout(ROWS, COULUMS, 30, 30);
        panelCenter = new JPanel(gridLayout);
        //damit man das Hintergrundbild sieht
        panelCenter.setOpaque(false);
        ImageIcon imageIcon;
        for (int i = 1; i <= CHARACTER; i++) {
            System.out.println("Schleife: " + i);
            panelForCharacterPicture = new JPanel();
            String name = String.format("panel%d", i);
            panelForCharacterPicture.setName(name);
            JLabel label = new JLabel();
            String name2 = String.format("label%d", i);
            label.setName(name2);
             // Das passende Foto wird ausgewählt
            imageIcon = getImage(i);
            label.setIcon(imageIcon);
            panelForCharacterPicture.add(label);
            panelForCharacterPicture.setOpaque(false);
            panelForCharacterPicture.addMouseListener(new MouseListener() {
                @Override
                public void mouseReleased(MouseEvent e) {
                }
                @Override
                public void mousePressed(MouseEvent e) {
                    if (actionListener) {
                          
                        System.out.println("Mouselistener From: " + label.getName());
                        System.out.println("ActionListener ist an");
                       //das "löschen" von den Bilder funktioniert
                        label.setVisible(false);
                    }
                }
                @Override
                public void mouseExited(MouseEvent e) {
                }
                @Override
                public void mouseEntered(MouseEvent e) {
                }
                @Override
                public void mouseClicked(MouseEvent e) {
                }
            });
            panelCenter.add(panelForCharacterPicture);
       }Rechts:
		Code:
	
	     Das Gleiche wie bei links nur ohne Actionlistener, der wird später hinzugefügt
    private void createRightPanel() {
        System.out.println("Ich komme in die Methode");
        playerRight = new JPanel();
        playerRight.setLayout(new BoxLayout(playerRight, BoxLayout.Y_AXIS));
        JPanel createRightPanel;
        for (int i = 2; i <= nameForPanels.length - 1; i = i + 2) {
            createRightPanel = new JPanel();
            String name = String.format("panel%s", nameForPanels[i]);
            createRightPanel.setName(name);
            JLabel label = new JLabel();
            String name2 = String.format("labelLeft%d", i);
            label.setText("Player" + i + "...");
            label.setName(name2);
            createRightPanel.add(label);
            createRightPanel.setPreferredSize(new Dimension(300, createRightPanel.getHeight()));
            playerRight.add(createRightPanel);
        }
    }Frame:
Und am Ende werden die alle hinzugefügt
		Code:
	
	frame.add(characterSelectionPanel, BorderLayout.CENTER);
        frame.add(playerLeft, BorderLayout.WEST);
        frame.add(playerRight, BorderLayout.EAST); 
				 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		