lables nach Zufall einordnen

Java:
ArrayList<JLabel> labels = new ArrayList<>();

// adde hier deine labels in die ArrayList

Collections.shuffle(labels);
 
Java:
ArrayList<JLabel> labels = new ArrayList<>();

// adde hier deine labels in die ArrayList

Collections.shuffle(labels);

Also ich hab das jetzt grad nicht getestet aber ich nehme an, dann werde alle meine labels zufällig geordnet sein. Vielleicht muss ich mich korrigieren ... ich habe schon mehr als 24 labels aber nur 24 bestimmte (label1 bis label24) will ich zufällig geordnet haben. Was drüber geht nicht.
 
Sorry, ich hab grad nich ganz verstanden was du meinst.

Mit dem shuffle wird nur die reihnfolge innerhalb der liste verändert. Wenn du ein label1 zb in die liste hinzufügst, (sagen wir an die erste / 0-te stelle) und dann die liste mit vielen anderen labels shufflest, dann wird die variable label1 immer noch auf label1 zeigen. Dem ist das shuffle egal. nur wird an list.get(0) nicht mehr (bzw wahrscheinlich nicht mehr) label1 sein, sondern irgend ein anderes.

Oder ich verstehe wirklich nich was du meinst, sorry
 
Java:
List<JLabel> first24Labels = new ArrayList<>();
first24Labels.add( label1 );
first24Labels.add( label2 );
...
first24Labels.add( label23 );
first24Labels.add( label24 );
List<JLabel> otherLabels = new ArrayList<>();
otherLabels.add( label25 );
...

und dann dort, wo deine Labels benutzt werden:
Java:
Collections.shuffle(first24Labels);
for(JLabel label : first24Labels) {
    // hier kommt dein Code rein
}
for(JLabel label : otherLabels) {
    // hier kommt dein Code rein
}
 
Java:
List<JLabel> first24Labels = new ArrayList<>();
first24Labels.add( label1 );
first24Labels.add( label2 );
...
first24Labels.add( label23 );
first24Labels.add( label24 );

Vorsicht, man muss damit rechnen, dass da sowas rauskommt wie
Java:
private JLabel label1 = new JLabel("...");
private JLabel label2 = new JLabel("...");
...
private JLabel label23 = new JLabel("...");
private JLabel label24 = new JLabel("...");
😉

EDIT: Und als ich das eben geschrieben hatte und auf den nächsten Tab der anzuguckenden Threads klickte, sah ich das hier: http://www.java-forum.org/java-basics-anfaenger-themen/141214-ampel.html ... :noe:
 
Vorsicht, man muss damit rechnen, dass da sowas rauskommt wie
Java:
private JLabel label1 = new JLabel("...");
private JLabel label2 = new JLabel("...");
...
private JLabel label23 = new JLabel("...");
private JLabel label24 = new JLabel("...");
😉

EDIT: Und als ich das eben geschrieben hatte und auf den nächsten Tab der anzuguckenden Threads klickte, sah ich das hier: http://www.java-forum.org/java-basics-anfaenger-themen/141214-ampel.html ... :noe:

Japp, ich wollte nur so "idiotensicher" wie möglich sein. 🙂
 
Java:
List<JLabel> first24Labels = new ArrayList<>();
first24Labels.add( label1 );
first24Labels.add( label2 );
...
first24Labels.add( label23 );
first24Labels.add( label24 );
List<JLabel> otherLabels = new ArrayList<>();
otherLabels.add( label25 );
...

Hmmmmm, ich habe das ganze mit Arraylist gemacht, da hat das geklappt mit dem generischen Typ.
Mit List sagt mir Eclips "the type List is not generic" ist also kein generischter Typ.
Oder geht das erst ab 1.7 ?!?!? der 2te Diamon <> ohne dem Typ geht ja erst ab 1.7.

Java:
import java.awt.List;
import java.util.ArrayList;
import java.util.Collections;

public class ListTest {
	 
	public static void main(String[] args) {
		ArrayList<String> labels = new ArrayList<String>();
//		List<String> first24Labels = new ArrayList<>();
		
		labels.add("hallo");
		labels.add("das");
		labels.add("ist");
		labels.add("ein");
		labels.add("test");
		
		for(String label : labels)
			System.out.println(label);
		
		Collections.shuffle(labels);
	
		for(String label : labels)
			System.out.println(label);
	}
}
 
Zuletzt bearbeitet:
Dein problem war, dass du die falsche liste verwendest 🙂

import java.awt.List;

du brauchst die java.util.List;
java.awt.List ist eine Liste die man anzeigen kann, im sinne von graphischer Oberfläche



und der "List<JLabel>" sollte auch <String> sein 🙂
 
Dein problem war, dass du die falsche liste verwendest 🙂



du brauchst die java.util.List;
java.awt.List ist eine Liste die man anzeigen kann, im sinne von graphischer Oberfläche



und der "List<JLabel>" sollte auch <String> sein 🙂

Aha, alles klaro.
Das mit dem JLabel war schon klar, hab ich auch im Posting dann geändert, aber Deine Antwort kam schneller 🙂 Sehr gemein, dass es da 2 Listen gibt, so genau hab ich nicht hingesehen.

Pentalon
 

Zurück
Oben