privatevoidBilder(){ArrayList list =newArrayList();for(int i =0; i < ANZAHL /2; i++){
list.add(i);
list.add(i);}Collections.shuffle(list);Object lista[]= list.toArray();//get arrayfor(int i =0; i < lista.length; i++){int img =((Integer) lista[i]);
filename ="/images/"+ img +".jpg";try{
bilder[i]=ImageIO.read(this.getClass().getResource(filename));
cards[i]=newJButton(newImageIcon(bilder[i]));
cards[i].setBorder(BorderFactory.createEmptyBorder());
cards[i].addActionListener(this);this.add(cards[i], i);// System.out.println(lista);for(int j =0; j < lista.length; j++){System.out.print(" "+((Integer) lista[j]));}System.out.println();}catch(IOException ex){System.out.println(ex.getMessage()+" ("+ filename +")");}}
Gerne möchte ich nun, dass die Werte in ein 2-dimensionales Array gespeichert wird, welches als 2. Wert [h] hat (Bsp. lista[3][h]). Leider weiss ich nicht, wie ich dies umsetzen kann.
also ich versteh dich net ganz. willst du bilder aufm JFrame shuffeln? was meinste mit h? warum benutzt du keine generics und warum packst du die liste überhaupt in ein array??
Ich bin mit Umgang mit Arrays nicht geübt. Ich habe das mit der Liste so gemacht, weil ich nicht wusse, dass es auch ohne geht.
Mein Ziel ist es pro Karte zwei Werte zu speichern. Die Zahl der Karte wie anhin und aber zusätzlich noch h für hide oder s für show, damit ich unterscheiden kann ob die Karte auf- oder zugedeckt ist.
publicclassTest{publicstaticvoidmain(String[] args){ArrayList<String> list =newArrayList<String>();
list.add("Bier");
list.add("Wein");
list.add("Schnaps");//Object lista[] = list.toArray(); //Schlecht! da du kein Object[] willst! sondern ein Objekct[][]Object[][] lista =newObject[list.size()][];//for(int i =0; i < list.size(); i++){
lista[i]=newObject[2];//ok hier das array ins array
lista[i][0]= list.get(i);// das objekt in der jeweiligen Zeile in die Spalte 0 setzen..}//jetz kann ich in jeder zeile/spalte setzen was ich will//bier ist gut!
lista[0][1]="gut";//schnaps ist stark
lista[2][1]="stark";for(int i =0; i < lista.length; i++){for(int j =0; j < lista[i].length; j++){System.out.print(lista[i][j]+"\t");}System.out.println();}}}
generell muss ich aber sagen, das mein Coder der TOTALE MÜLL ist!!!!
Ein Objekt[][] ist in der objektorientierten Programmierung der totale graus!
nicht typsicher, sagt nix aus, ungut zu handhaben.
Was ist an der Spalte 2? Was bedeuet das? Ist das eine Hand? Ist das eine Wertigkeit?
Wenn du irgendwas mit zb Pokerhänden machst. Mach dir ein Objekt Hand, das hat 5 bzw 7 Karten und hat die eigenschaft einer Wertigkeit....
Mein Ziel ist es pro Karte zwei Werte zu speichern. Die Zahl der Karte wie anhin und aber zusätzlich noch h für hide oder s für show, damit ich unterscheiden kann ob die Karte auf- oder zugedeckt ist.
Es handelt sich um ein Memory. Ich möchte, dass ich beim Durchlauf der for-Schleife mit h oder s definieren kann, ob cardback.gif ausgelesen wird, oder x.jpg.