# Code Schloss



## mbX (7. Jan 2006)

Hi erstmal !! 
Ich les hier schon länger mit, doch jetzt hab ich das erste Mal ein Problem, dass ich nicht über die Suche gefunden habe .. 

Ich will eine Art Code-Schloss programieren .. Es soll drei Buttons geben (0, 1, 2) .. Wenn ich die Buttons drücke, soll er die Zahlen in der Reihenfolge wie ich sie drücke anzeigen .. Drücke ich also 0 2 1 soll dort stehen 0 2 1 .. 
Später soll er dann den gedrückten Code mit einem fixen Code vergleichen und schreiben richtig oder falsch .. 

Mein eigentliches Problem ist aber im Moment die Anzeige .. 
Ich hab wirklich schon alles Probiert, doch ich schaffs nicht .. Hier ist mal der Code .. 


```
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.*;

public class code extends Applet implements ActionListener {
    
    Button[] b = new Button[3];
    
    public void init() {
        
        for (int i=0; i<3; i++) {
            String str = new String();
            b[i] = new Button(str.valueOf(i));
            add(b[i]);
            b[i].addActionListener(this);
        }
    }
    
    public void actionPerformed(ActionEvent e) {
        Graphics g = this.getGraphics();
        int[] code = new int[3];
        String x = new String();
        int k = 0;
    
        while (k < 3) {
            g.drawString(String.valueOf(k), 100, 200);
            if (e.getSource() == b[0]) {
                code[k] = 0;
                g.drawString("0", (k+1)*100, 100);
            }
            if (e.getSource() == b[1]) {
                code[k] = 1;
                g.drawString("1", (k+1)*100, 100);
            }
            if (e.getSource() == b[2]) {
                code[k] = 2;
                g.drawString("2", (k+1)*100, 100);
            }
            k++;
            g.drawString(String.valueOf(k), 200, 200);
            
        }
    }
}
```


----------



## Beni (7. Jan 2006)

Nimm ein Label und benutz die "setText"-Methode um den bisherigen Verlauf darzustellen (als ein String).

Die "getGraphics()"-Methode gehört schlicht und einfach verboten...


----------



## jagdfalke (7. Jan 2006)

Jedesmal, wenn der ActionListener aufgerufen wird, wird auch das hier ausgeführt:

```
int[] code = new int[3];
```

Damit sind alle Elemete aus "code" wieder weg. 

mfg
jagdfalke


----------



## mbX (7. Jan 2006)

Danke für die schnelle Antwort .. 
Aber ich versteh das nicht ganz .. 

Ich habe das so mit der getGraphics gelernt .. Aber das eigentliche Problem ist ja die Schleife .. 
Irgendwie wenn ich einen Button drück, dann checkt er beim nächsten Durchlauf nicht nochmal, ob ein neuer Button gedrückt wurde .. Man müsste ihm sagen, dass er nur einen Durchlauf macht, wenn ein Button gedrückt wird, nur das kann ich nicht ..


----------



## mbX (7. Jan 2006)

jagdfalke hat gesagt.:
			
		

> Jedesmal, wenn der ActionListener aufgerufen wird, wird auch das hier ausgeführt:
> 
> ```
> int[] code = new int[3];
> ...



OK, das heißt, das initialisier ich oben mit den buttons !!


----------



## jagdfalke (7. Jan 2006)

ja, genau wie das k.


----------



## L-ectron-X (7. Jan 2006)

Beni hat gesagt.:
			
		

> Die "getGraphics()"-Methode gehört schlicht und einfach verboten...


Und wo ist die Erklärung? Warum also?


----------



## Beni (7. Jan 2006)

L-ectron-X hat gesagt.:
			
		

> Beni hat gesagt.:
> 
> 
> 
> ...


Weil bis jetzt jede Frage die "getGraphics" enthielt darauf hinauslief, das "getGraphics" nicht zu verwenden (sondern paint zu überschreiben) :wink:

(Ok, ich gebe es zu, war etwas kurz die Antwort  )


----------



## L-ectron-X (7. Jan 2006)

Das verrät jetzt aber noch nicht, warum deiner Meinung nach diese Methode verboten werden sollte...


----------



## Beni (7. Jan 2006)

Damit niemand mehr denkt, damit könne man zeichnen (und das Bild bliebe dann vorhanden).

Ein rein psychologisches Problem L-ectron-X: ich habe noch niemals gesehen, dass die Methode für einen guten Zwecke verwendet wurde. Dafür wurde sie schon oft im Zusammenhang mit Fehlern (wie hier) verwendet -> die Methode ist ein Unglücksbringer *abergläubischHinUndHerSchau* :bae:


----------



## Roar (7. Jan 2006)

Beni hat gesagt.:
			
		

> Damit niemand mehr denkt, damit könne man zeichnen (und das Bild bliebe dann vorhanden).
> 
> Ein rein psychologisches Problem L-ectron-X: ich habe noch niemals gesehen, dass die Methode für einen guten Zwecke verwendet wurde. Dafür wurde sie schon oft im Zusammenhang mit Fehlern (wie hier) verwendet -> die Methode ist ein Unglücksbringer *abergläubischHinUndHerSchau* :bae:


<ot>haha: http://www.java-forum.org/de/viewtopic.php?t=26252 </ot>


----------



## Guest (8. Jan 2006)

Vielen Dank an euch !! 
Es funktinoniert jetzt !! 

Jetzt muss ich mir nur noch anschauen, wie ich die Arrays mit den Codes vergleichen kann und dann halt "richtig" oder "falsch" hinschreib !! 

Jedenfalls danke für eure Hilfe !!


----------

