Array in Combobox ausnutzen???

Stinkybrain

Mitglied
Guten morgen.
Mein projekt sieht vor für ein pen and paper spiel eine Oberfläche für den Spielleiter zu basteln
ich weiß das der code so nicht funktioniert aber habe auch keine Idee.
Natürlich könnte ich auch nur ein bild anhängen aber das wäre nur die Notlösung.

Also meine frage ist wie kiege ich in ein switch/case eine programierung rein das ich erst sachen für Spieler 1 aus der Combobox und dann für spieler 2 usw aus der Kombobox auslesen kann
Java:
public class grundgerüst {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		final boolean a = false;
		
		// Bilder laden
		final Icon iconApo = new ImageIcon(JButton.class.getResource("/images/Apo.jpg"));
		final Icon iconChr = new ImageIcon( JButton.class.getResource("/images/Chr.png") );
	/*	final Icon iconHel = new ImageIcon( JLabel.class.getResource( "/images/Hel.tiff") );
		final Icon iconJeh = new ImageIcon( JLabel.class.getResource( "/images/Jeh.tiff") );
		final Icon iconRic = new ImageIcon( JLabel.class.getResource( "/images/Ric.tiff") );
		final Icon iconSchr = new ImageIcon( JLabel.class.getResource( "/images/Schr.tiff") );
		final Icon iconSip = new ImageIcon( JLabel.class.getResource( "/images/Sip.tiff") );
		final Icon iconSpi = new ImageIcon( JLabel.class.getResource( "/images/Spi.tiff") );
		final Icon iconWied = new ImageIcon( JLabel.class.getResource( "/images/Wie.tiff") );
		*/
		
		
		
		
		JFrame Oberflaeche = new JFrame();
		Oberflaeche.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Oberflaeche.setLayout(null);
		
		JLabel NumberofPlayers = new JLabel("Spieler Anzahl");
		NumberofPlayers.setBounds(20, 0, 120, 30);
		
		
	    JComboBox Playernumbers = new JComboBox();
		Playernumbers.addItem("2 Spieler");
		Playernumbers.addItem("3 Spieler");
		Playernumbers.addItem("4 Spieler");
		Playernumbers.addItem("5 Spieler");
		Playernumbers.addItem("6 Spieler");
		Playernumbers.addItem("7 Spieler");
		Playernumbers.addItem("8 Spieler");
		Playernumbers.addItem("9 Spieler");
		
		Playernumbers.setBounds(20, 30, 80, 20);
		
/*		Playernumbers.addItemListener(new ItemListener()
		{
			@Override public void itemStateChanged (ItemEvent e)
			{
			
				switch(Playernumbers.getSelectedIndex())
				{
				      case 0 : Playernumbers.getItemAt(Anzahl);
				      case 1 : x = 3;break;
				      case 2 : x = 4;break;
				      case 3 : x = 5;break;
				      case 4 : x = 6;break;
				      case 5 : x = 7;break;
				      case 6 : x = 8;break;
				      case 7 : x = 9;break;				     			      			      				      
				}
				
			}
		});
		
*/		
		
		
		int x =4;
		
		int VertikalButton = 250;
	
			
		final JButton[] klassenfotos = new JButton[x];
		
		Oberflaeche.add(NumberofPlayers);
		Oberflaeche.add(Playernumbers);
		Oberflaeche.setSize(500, 600);
		Oberflaeche.setVisible(true);
		for (int Anzahl = 0; Anzahl <x; Anzahl++)
		{
			
			JButton button = new JButton("Kopf");
			button.setBounds(VertikalButton, 60, 80, 20);
			Oberflaeche.add(button);
			
	
			final JComboBox c1 = new JComboBox();
		        c1.addItem("Heron");
		        c1.addItem("Apokalipiker");
		        c1.setBounds(VertikalButton- 100, 40, 80, 20);
		   
		    
/*
     Hier ist das problem das ich den array nicht einzeln ansteuern kann

*/

 

		    
		    c1.addItemListener(new ItemListener()
		    {
		    	@Override public void itemStateChanged (ItemEvent e)
		    	{
		    		switch(c1.getSelectedIndex())
		    		{
		    		case 0 :klassenfotos[0].setIcon(iconApo);break;	    		
		    		case 1 : klassenfotos[1].setIcon(iconChr);break;
		    		case 2 : klassenfotos[2].setIcon(iconApo);break;
		    		
		    		}
		    	}
		   } );
		    Oberflaeche.add(c1);
			
			JButton buttonRumpf = new JButton("Rumpf");
			buttonRumpf.setBounds(VertikalButton, 120, 80, 20);
			Oberflaeche.add(buttonRumpf);
			
			
			JButton buttonUnterleib = new JButton("Unterleib");
			buttonUnterleib.setBounds(VertikalButton, 180, 80, 20);
			Oberflaeche.add(buttonUnterleib);
			
			
		    klassenfotos[Anzahl] = new JButton();
			klassenfotos[Anzahl].setBounds(VertikalButton - 150, 120, 120, 120);
			klassenfotos[Anzahl].setText("Spieler" + Anzahl);
			Oberflaeche.add(klassenfotos[Anzahl]);
			VertikalButton += 250;
			
			
		}
		
		
		
	}

}

Ja mein code ist etwas unübersichtlich sry
hoffe ihr könnt mir weiter helfen sonst versuch ich es auf die Leichtere variante
 

kaoZ

Top Contributor
Bitte was ?

Also meine frage ist wie kiege ich in ein switch/case eine programierung rein das ich erst sachen für Spieler 1 aus der Combobox und dann für spieler 2 usw aus der Kombobox auslesen kann

Ich kann hier deine Fragestellung nicht einmal ansatzweise auf eine konkrete Beschreibung ummünzen...

Java:
/*
     Hier ist das problem das ich den array nicht einzeln ansteuern kann
 
*/

Arrays spricht man per index an :

z.B
Java:
arr[8] = "Hey, ich bin ein String";

Willst du sicherstellen das erst für Spieler 1 und dann für alle anderen Spieler ausgewählt werden kann ? oder wie soll man das Verstehen ?

[TIPP]Eine JComboBox verwendet zum halten ihrer Daten ein Modell, genauer gesagt ein
Code:
DefaultComboBoxModel
welchem du die Daten hinzufügst[/TIPP]

So sieht z.B der Standadkonstruktor der JComboBox aus

Java:
 public JComboBox() {
        super();
        setModel(new DefaultComboBoxModel<E>());
        init();
    }

Wenn du nun add() aufrufst fügst du deine Daten eigentlich dem Modell und nicht der Box hinzu, die JComboBox dient nur zur Visualisierung dieser Daten .
 
Zuletzt bearbeitet:

Stinkybrain

Mitglied
Ok füge jetzt mal ein Bild hinzu wie es bis jetzt aus sieht vieleicht verdeutlicht es dann das Projekt besser.


Habe jetzt auch noch versucht den index der combobox über eine while schleife zu ändern .
klappt aber nicht weil auf der einen seite sagt mir Eclipse das ich int = final machen soll kann es dann aber logischerweise nicht ändern.
Java:
int players = 0;
/*    
		    while ( players <= x)
		    {	
		    
		    c1.addItemListener(new ItemListener()
		    {
		    	@Override public void itemStateChanged (ItemEvent e)
		    	{
		    		switch(c1.getSelectedIndex())
		    		{
		    		case 0 :klassenfotos[players].setIcon(iconApo);break;	    		
		    		case 1 : klassenfotos[players].setIcon(iconChr);break;
		    		case 2 : klassenfotos[players].setIcon(iconApo);break;
		    		
		    		}
		    	}
		   } );
		      players = players + 1;   
		    }
		*/
 

Anhänge

  • vorschau.jpg
    vorschau.jpg
    44,2 KB · Aufrufe: 35
Zuletzt bearbeitet:

Keyone94

Mitglied
1. nicht alles in die Main rein kloppen

2. soweit ich das verstehe willst du einen Spieler nach dem andern auswählen können, falls ja erstell dir eine variable die angibt welcher spieler gerade auswählt

Java:
public class grundgerüst {
 

 // Bilder laden
        final Icon iconApo = new ImageIcon(JButton.class.getResource("/images/Apo.jpg"));
        final Icon iconChr = new ImageIcon( JButton.class.getResource("/images/Chr.png") );
    /*  final Icon iconHel = new ImageIcon( JLabel.class.getResource( "/images/Hel.tiff") );
        final Icon iconJeh = new ImageIcon( JLabel.class.getResource( "/images/Jeh.tiff") );
        final Icon iconRic = new ImageIcon( JLabel.class.getResource( "/images/Ric.tiff") );
        final Icon iconSchr = new ImageIcon( JLabel.class.getResource( "/images/Schr.tiff") );
        final Icon iconSip = new ImageIcon( JLabel.class.getResource( "/images/Sip.tiff") );
        final Icon iconSpi = new ImageIcon( JLabel.class.getResource( "/images/Spi.tiff") );
        final Icon iconWied = new ImageIcon( JLabel.class.getResource( "/images/Wie.tiff") );
        */

        JFrame Oberflaeche = new JFrame();
        JComboBox Playernumbers = new JComboBox();
        boolean a = false;
        JLabel NumberofPlayers = new JLabel("Spieler Anzahl");


         int x =4;
         int VertikalButton = 250;
         JButton[] klassenfotos = new JButton[x];


         JComboBox c[] = new JComboBox()[x]; //du kannst auch einen Combobox array erschaffen
          




         public static void main(String[] args) {
       
        Oberflaeche.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Oberflaeche.setLayout(null);
        
       
        NumberofPlayers.setBounds(20, 0, 120, 30);
        
        Playernumbers.addItem("2 Spieler");
        Playernumbers.addItem("3 Spieler");
        Playernumbers.addItem("4 Spieler");
        Playernumbers.addItem("5 Spieler");
        Playernumbers.addItem("6 Spieler");
        Playernumbers.addItem("7 Spieler");
        Playernumbers.addItem("8 Spieler");
        Playernumbers.addItem("9 Spieler");
        
        Playernumbers.setBounds(20, 30, 80, 20);
        
/*      Playernumbers.addItemListener(new ItemListener()
        {
            @Override public void itemStateChanged (ItemEvent e)
            {
            
                switch(Playernumbers.getSelectedIndex())
                {
                      case 0 : Playernumbers.getItemAt(Anzahl);
                      case 1 : x = 3;break;
                      case 2 : x = 4;break;
                      case 3 : x = 5;break;
                      case 4 : x = 6;break;
                      case 5 : x = 7;break;
                      case 6 : x = 8;break;
                      case 7 : x = 9;break;                                                                       
                }
                
            }
        });
        
*/      

        Oberflaeche.add(NumberofPlayers);
        Oberflaeche.add(Playernumbers);
        Oberflaeche.setSize(500, 600);
        Oberflaeche.setVisible(true);
        for (int Anzahl = 0; Anzahl <x; Anzahl++)
        {
            
            JButton button = new JButton("Kopf");
            button.setBounds(VertikalButton, 60, 80, 20);
            Oberflaeche.add(button);
            
            c[i].addItem("Heron");
            c[i].addItem("Apokalipiker");
            c[i].setBounds(VertikalButton- 100, 40, 80, 20);

            
/*
     Hier ist das problem das ich den array nicht einzeln ansteuern kann
 
*/
 
 
 
            
            c[0].addItemListener(new ItemListener()
            {
                @Override public void itemStateChanged (ItemEvent e)
                {
                    switch(c[0].getSelectedIndex())
                    {
                    case 0 :klassenfotos[0].setIcon(iconApo);break;             
                    case 1 : klassenfotos[1].setIcon(iconChr);break;
                    case 2 : klassenfotos[2].setIcon(iconApo);break;
                    
                    }
                }
           } );
            Oberflaeche.add(c[0]);
            
            JButton buttonRumpf = new JButton("Rumpf");
            buttonRumpf.setBounds(VertikalButton, 120, 80, 20);
            Oberflaeche.add(buttonRumpf);
            
            
            JButton buttonUnterleib = new JButton("Unterleib");
            buttonUnterleib.setBounds(VertikalButton, 180, 80, 20);
            Oberflaeche.add(buttonUnterleib);
            
            
            klassenfotos[Anzahl] = new JButton();
            klassenfotos[Anzahl].setBounds(VertikalButton - 150, 120, 120, 120);
            klassenfotos[Anzahl].setText("Spieler" + Anzahl);
            Oberflaeche.add(klassenfotos[Anzahl]);
            VertikalButton += 250;
            
            
        }
        
        
        
    }
 
}
 

Stinkybrain

Mitglied
Danke!!!

aber die Schleife "(anzahl)" stoppt bei den einträgen c;
wenn ich diese ausklammer ( /*...*/ ) dann geht der code wieder ansonsten zeigt er eben nur einen kopf button

schaue mal ob ich sie nachher oben unterbringen kann.
 

Stinkybrain

Mitglied
Hallo ich bins nochmal.

Ich glaube ich habe mein problem nicht richtig ausgedrückt.

1. Habe ich jetzt die Namen in der Combobox einzel eingegeben
diese soll dann im programm je nach Anzahl der Spieler ausgegeben werden.

2. Dann möchte ich das zu jeder Combobox ein Bild für den jeweiligen Spieler einstellen will.
Dazu dachte ich mir ich könnte den Index Anzahlkleiner ändern damit ich eben für jede Combobox
ein eigendes Bild gestallten kann.

Dieses klappt aber nicht da ich den Array-index von " klassenfotos " in der for-Schleife nicht ändern
kann.

3. Wenn ich den Index von klassenfotos z.B.: zu [2] mache klappt es aber dann kann ich
halt nur den 3 Spieler ein Bild zuweisen.

Java:
     for ( int Anzahlkleiner = 0; Anzahlkleiner < x; Anzahlkleiner ++)
            {
               final JComboBox charakterListe = new JComboBox();
               charakterListe.addItem("bitte Auswählen");
               charakterListe.addItem("Heron");
               charakterListe.addItem("Apokalyptiker");
               charakterListe.addItem("Hellvetika");
               charakterListe.addItem("Jehamedaner");
               charakterListe.addItem("Richter");
               charakterListe.addItem("Schrotter");
               charakterListe.addItem("Sipplinge");
               charakterListe.addItem("Spitalier");
               charakterListe.addItem("Wiedertäufer");
               charakterListe.setBounds(VertikalButton-100, 80, 80, 20);  // hier wird die Box dupliziert 
                                                                                               // und verschoben
               Oberflaeche.add(charakterListe);
               charakterListe.addItemListener(new ItemListener()
               {
            	   @Override public void itemStateChanged (ItemEvent e)
            	   {
            		   switch(charakterListe.getSelectedIndex())
            		   {
            		   case 0 : klassenfotos[Anzahlkleiner].setIcon(iconApo);break;
            		   case 1 : klassenfotos[Anzahlkleiner].setIcon(iconChr);break;
            		   case 2 : klassenfotos[Anzahlkleiner].setIcon(iconApo);break;
            		   case 3 : klassenfotos[Anzahlkleiner].setIcon(iconChr);break;
            		   case 4 : klassenfotos[Anzahlkleiner].setIcon(iconApo);break;
            		   case 5 : klassenfotos[Anzahlkleiner].setIcon(iconChr);break;
            		   case 6 : klassenfotos[Anzahlkleiner].setIcon(iconApo);break;
            		   case 7 : klassenfotos[Anzahlkleiner].setIcon(iconChr);break;
            		   case 8 : klassenfotos[Anzahlkleiner].setIcon(iconApo);break;
            		   case 9 : klassenfotos[Anzahlkleiner].setIcon(iconChr);break;
            		   case 10: klassenfotos[Anzahlkleiner].setIcon(iconApo);break;
            		   
            		   
            		   
            		   }
            	   }
               });
            
            }
              Oberflaeche.add(charakterListe);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Fynn29 Liste sortieren ohne Array und ohne vorgegebene Sortierung Allgemeine Java-Themen 5
LucasGlockner Effizienter byte-Zugriff auf ein long[]-Array Allgemeine Java-Themen 8
8u3631984 Frage Performance bei Linked List und Array List Allgemeine Java-Themen 5
M Queue mit einem Array implemetieren Allgemeine Java-Themen 16
M Array Rang eines Elements Allgemeine Java-Themen 4
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
TheSepp Wie kann man Leerzeichen aus einer Array liste entfernen? Allgemeine Java-Themen 10
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
noah1407 Array Allgemeine Java-Themen 3
D Methoden Teil-Array mit Maximalwert bestimmen Allgemeine Java-Themen 23
N einem Array Objekte hinzufügen die ihr Array position gespeichert haben Allgemeine Java-Themen 34
N zweidimensionalen Array in dreidimensionalen Array speichern Allgemeine Java-Themen 4
N Schnellste Methode, ein Array durchzugehen? Allgemeine Java-Themen 9
T Objekt Array Aufgabe mit Busdatenbank Allgemeine Java-Themen 2
L Array und Index Allgemeine Java-Themen 26
L die 3 größten Zahlen im Array Allgemeine Java-Themen 1
G jToggleButton in Array/ArrayList Allgemeine Java-Themen 12
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
Willi.We Array sortieren Allgemeine Java-Themen 5
gotzi242 Array Summe bestimmen tipps? Allgemeine Java-Themen 14
H Matrix ohne Array erstellen Allgemeine Java-Themen 9
Aboya Char Array rekursiv vergleichen Allgemeine Java-Themen 15
V4ll3.Wff Array in Java Allgemeine Java-Themen 4
Noahscript Aus einem byte Array Steuerungszeichen und Code bekommen und ersetzen Allgemeine Java-Themen 3
H Array Sportschütze Allgemeine Java-Themen 6
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
M Array verändern Allgemeine Java-Themen 1
A JavaFX 2 dimensionales array Allgemeine Java-Themen 1
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
S Array dynamisieren oder ArrayList verwenden? Allgemeine Java-Themen 17
M Java 2D Array für ein Grid erstellen ? Allgemeine Java-Themen 2
H Array mit dem Datentype String[] initializieren Allgemeine Java-Themen 7
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
H Elemente aus ArrayList in Array speichern Allgemeine Java-Themen 8
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
N Byte Array in Java "dekomprimieren" Allgemeine Java-Themen 3
parrot Array Aufgabe Allgemeine Java-Themen 3
N String Array Eingabe Allgemeine Java-Themen 6
R Warum wird mir in der Konsole das "Standard Array" ausgegeben? Allgemeine Java-Themen 2
N Variablen Array Länge ändern. Allgemeine Java-Themen 8
D Kgv aller Paare aus einem Array mit n integer berechnen Allgemeine Java-Themen 5
W Enumeration ein Array/List als Eigenschaft mitgeben - warum geht das nicht? Allgemeine Java-Themen 0
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
A Array Problem Allgemeine Java-Themen 8
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
F Datei in String-Array einlesen Allgemeine Java-Themen 8
L Objekt aus Objekt-array "löschen" Allgemeine Java-Themen 2
I Array Parameter mit 2 Klassen - NullPointerException Allgemeine Java-Themen 3
X Größten Werte in meinem Array löschen? Allgemeine Java-Themen 16
E Angabe wie groß Array sein soll und in for-schleifen diesen Array füllen Allgemeine Java-Themen 3
F 3 Dimensionales Array mit Allgemeine Java-Themen 9
M Steueralgorithmus verwandelt Array in Anfangszustand Allgemeine Java-Themen 9
W Array vs. ArrayList vs. HashMap Allgemeine Java-Themen 20
D Datentypen 2-3 Baum erstellen mit geordnetem int-array Allgemeine Java-Themen 0
T Objekt in Array packen Allgemeine Java-Themen 6
M Zahlen in Array anordnen Allgemeine Java-Themen 8
M Eclipse Unvollständigen Array ansteuern Allgemeine Java-Themen 2
D Erste Schritte Im Array Werte tauschen Allgemeine Java-Themen 5
Xge For/Array Error: IndexOutOfBounds Allgemeine Java-Themen 4
M Wie kann ich ein int[] Array in einer Methode benutzen? Allgemeine Java-Themen 6
FRI3ND Datentypen Date-Array sortieren - Text mitnehmen? Allgemeine Java-Themen 7
D Integer-Array variabler Größe mit Zahlen befüllen (Schleifen) Allgemeine Java-Themen 0
J Variablen Array ertellen bei model.put Allgemeine Java-Themen 13
S Eindimensionales Array in zweidimensionales Array speichern Allgemeine Java-Themen 5
R convert 2d array list to 2d array Allgemeine Java-Themen 1
J json Array würfel Spalten durcheinander Allgemeine Java-Themen 9
MiMa Array umbau oder Alternative? Allgemeine Java-Themen 5
L Datentypen 3D Array Allgemeine Java-Themen 3
M 2D Array mit unterschiedlichen Längen erstellen und befüllen Allgemeine Java-Themen 11
Mario1409 Methoden JSON Array von URL Allgemeine Java-Themen 8
E Swing Array mit Bildern in GUI darstellen Allgemeine Java-Themen 2
P Array einer abstrakten Klasse Allgemeine Java-Themen 4
H Zweidimensionales Array - Zellen der Tabelle verbinden Allgemeine Java-Themen 2
M Zweidimensionales Array mit Binärzahlen füllen Allgemeine Java-Themen 8
M Array aus Thread Objekten erstellen Allgemeine Java-Themen 2
kodela Dynamisches Array in einer Klasse Allgemeine Java-Themen 5
G Array ohne Aufzählungszeichen ausgeben Allgemeine Java-Themen 6
J Wie kann ich ein Java Array als Säulendiagramm ausgeben? Allgemeine Java-Themen 2
Z 2D Array Pixels reparieren Allgemeine Java-Themen 2
S Algorithmus welcher True-Werte in einem Array findet und auswertet. Allgemeine Java-Themen 5
B Polibios Array erweitern Allgemeine Java-Themen 1
R Index in einem Array löschen Allgemeine Java-Themen 10
R Index in einem Array löschen Allgemeine Java-Themen 2
U Methoden Algorithmus MergeSort String [ ] array sortieren programmieren Allgemeine Java-Themen 17
J Array-List Bubble-Sort Allgemeine Java-Themen 12
4 Variablen Int-Array Int Zuweisen Allgemeine Java-Themen 7
J Array Allgemeine Java-Themen 8
Z Array mit unterschiedlichen Werten Allgemeine Java-Themen 1
L sortiertes Array im main aufrufen klappt nicht. Allgemeine Java-Themen 3
O Mein JButton Array funktioniert nicht Allgemeine Java-Themen 3
A Mit dem letzten bis zum ersten Wert aus Array rechnen Allgemeine Java-Themen 15
A Vector Strings in Array splitten Allgemeine Java-Themen 6
I Muster in Array suchen Allgemeine Java-Themen 10
RalleYTN Datentypen Herausfinden ob Object ein Array ist ohne den Typen des Arrays zu kennen? Allgemeine Java-Themen 12
S Variablen String[] Array per schleife in int[] einlesen Allgemeine Java-Themen 8
B Zahlen manuell eingeben und in Array Speichern Allgemeine Java-Themen 2
R Wärmeleitung, 3d-Array Allgemeine Java-Themen 2
T Java Array in Methoden Allgemeine Java-Themen 1
D Erste Schritte Array von einer forschleife nach ausserhalb trasferieren Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben