Code Schloss

Status
Nicht offen für weitere Antworten.

mbX

Mitglied
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 ..

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);
            
        }
    }
}
 
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...
 
Jedesmal, wenn der ActionListener aufgerufen wird, wird auch das hier ausgeführt:
Code:
int[] code = new int[3];

Damit sind alle Elemete aus "code" wieder weg.

mfg
jagdfalke
 
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 ..
 
jagdfalke hat gesagt.:
Jedesmal, wenn der ActionListener aufgerufen wird, wird auch das hier ausgeführt:
Code:
int[] code = new int[3];

Damit sind alle Elemete aus "code" wieder weg.

OK, das heißt, das initialisier ich oben mit den buttons !!
 
L-ectron-X hat gesagt.:
Beni hat gesagt.:
Die "getGraphics()"-Methode gehört schlicht und einfach verboten...
Und wo ist die Erklärung? Warum also?
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 😳 )
 
Das verrät jetzt aber noch nicht, warum deiner Meinung nach diese Methode verboten werden sollte...
 
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:
 
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>
 
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 !!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben