Z_AGo Skrevet 22. mars 2009 Del Skrevet 22. mars 2009 Jeg skal lage et 8 - puzzle. jeg tenkte å bruke knapper for de forskjellige verdeiene fra 0 - 8.. men jeg har et problem med å få byttet plassen på knappene.. public JButton[] button; public static String[] knappenavn = {"1", "2", "3", "4", "5", "6", "7", "8", "0"}; her hentes knappene: public void knapper() { button = new JButton[knappenavn.length]; for (int i = 0; i < knappenavn.length; i++) { button[i] = new JButton(knappenavn[i]); add(button[i]); spillet hent = new spillet(); button[i].addActionListener(new spillet()); } button[knappenavn.length - 1].setEnabled(false); } dette er actionlisteneren min: private class spillet implements ActionListener { public void actionPerformed(ActionEvent event) { String text = knappenavn[1]; String text2 = knappenavn[2]; String knapp1; String knapp2; String temp; String temp2; for (int i = 0; i < knappenavn.length;i++) { if (knappenavn[0].equals( button[0].getText() ) ) { temp = knappenavn[0]; knappenavn[1] = knappenavn[0]; knappenavn[1] = temp; knappenavn[0].equals( button[1].getText() ); repaint(); System.out.println("hei"); } else { System.out.println("trooo"); } } jeg vet ikke om jeg har skrevet noe feil for å få byttet om på dette eller om jeg mangler en oppdatering?? Lenke til kommentar
Cyberfrog Skrevet 23. mars 2009 Del Skrevet 23. mars 2009 (endret) Å bytte om strenger i knappenavn-tabellen vil ikke ha noen effekt på tekstlabelene til dine JButtons. Verdt å nevne at Java-strenger er immutable. Endret 23. mars 2009 av Cyberfrog Lenke til kommentar
Z_AGo Skrevet 23. mars 2009 Forfatter Del Skrevet 23. mars 2009 Hvordan gjør jeg det slik at det får en effekt?? Lenke til kommentar
pgdx Skrevet 23. mars 2009 Del Skrevet 23. mars 2009 private void updateButtonText() { for (int i = 0; i < button.length; i++) { button[i].setText(knappenavn[i]); } } Lenke til kommentar
togeru Skrevet 24. mars 2009 Del Skrevet 24. mars 2009 (endret) Det letteste her er vel bare å la buttons-arrayet ditt stå urørt. Da lar du alle actionlistener'ene står som de er uten å rote til hele skjemaet. Når du skal bytte om knapper bruker du .setText("") metoden. Da kan du finne ut hvilen knapp som skal bytte med 0 og bare endre tekst på de to. Kanskje det ville vært en idé å disable knappen med 0? Husk bare å enable den får du flytter den igjen. Endret 24. mars 2009 av togeru Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå