Morgen.
Ich denke mal der Titel ist schon sehr aussagekräftig. Ich hab ein "Spiel", welches mehr oder weniger ahnungslosen Menschen zeigen soll, dass man keine leicht zu erratenden Passwörter nehmen soll. Das ist im Rahmen eines Projekt hier in der Firma, das jungen Mädchen (9 Klasse Realschule) die IT-Berufe näher bringen soll.
However.
Das "Spiel" funktioniert auch einwandfrei. Ich bin aber momentan dabei, son paar Sachen zu verfeinern. Mein Problem ist nun das ich nicht weiß, wie ich dem textfield txnick gleich zu anfang den Focus geb.
wäre für hilfe dankbar.
Hier der Code:
Das ganze besteht halt aus insgesamt 5 Leveln. Die Anderen sehen auch ungefähr so aus
Ach ja, und für Kritik/Anregungen/Vorschläge jeglicher Art bin ich immer dankbar (was kann ich besser/anders machen?)
Dusk
EDIT:
Hatte vergessen zu erwähnen das ich mcih schon ein bissl im forum durchgewälzt hab und auch schon einige male etwas mit txnick.requestFocusInWindow() usw probiert hab aber irgendwie wollte es nicht so richtig. in nem anderen beitrag hat jemand gesagt das es an der falschen stelle nichts bringt. deswegen poste ich "meinen speziellen" fall ^^
EDIT2:
Der übersicht wegen habe ich den text in der TextArea mit zeilenumbrüchen versehen. hoffe mal dadurch verfälscht sich nichts.
Ich denke mal der Titel ist schon sehr aussagekräftig. Ich hab ein "Spiel", welches mehr oder weniger ahnungslosen Menschen zeigen soll, dass man keine leicht zu erratenden Passwörter nehmen soll. Das ist im Rahmen eines Projekt hier in der Firma, das jungen Mädchen (9 Klasse Realschule) die IT-Berufe näher bringen soll.
However.
Das "Spiel" funktioniert auch einwandfrei. Ich bin aber momentan dabei, son paar Sachen zu verfeinern. Mein Problem ist nun das ich nicht weiß, wie ich dem textfield txnick gleich zu anfang den Focus geb.
wäre für hilfe dankbar.
Hier der Code:
Code:
package passwort;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Stufe1 implements ActionListener, KeyListener, FocusListener {
JFrame frame = null;
JLabel ausgabe = null;
JTextField txnick = null;
JPasswordField txpwd = null;
JButton goon = null;
/** Creates a new instance of Stufe1 */
public Stufe1() {
frame = new JFrame("Level 1");
frame.setLocation(100,100);
frame.setSize(800,600);
frame.setResizable(false);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.setLayout(null);
JPanel pan1 = new JPanel();
pan1.setLayout(null);
pan1.setBounds(5,5,785,500);
JPanel pan2 = new JPanel();
pan2.setLayout(null);
pan2.setBounds(5,510,785,54);
JTextArea text = new JTextArea();
text.setLineWrap(true);
text.setWrapStyleWord(true);
text.setText("\n\nMark:\nMark ist 16 Jahre Alt und geht auf die Realschule \"Am Wall\" und wohnt in der
Stadt Emden.
\nEr hat, mit seiner Zwillingsschwester zusammen, am 15.04. Geburtstag.
\nSeit ca 2 1/2 Jahren hat er einen Hund namens Tequila bekommen.
\n\nZu seinen Hobby gehören Radfahren, Fußball und er chattet gerne bei Knuddels.
Er spielt seit er laufen kann Fußball bei seinem Lieblingsverein SV Treffer.
\n\n\n\nEr wollte sich jetzt in seinen E-Mail-Account einloggen, den er vor ca 2 Jahren erstellt hat.
Sein Benutzername ist \"Mark\" aber leider hat er sein Passwort vergessen.
Er weiß, dass es irgendwas mit ihm selbst zu tun hat aber er kann sich leider nicht mehr dran erinnern.
\n\nFinde es heraus.");
text.setBounds(0,0,785,500);
text.setEditable(false);
text.addKeyListener(this);
frame.addKeyListener(this);
pan1.addKeyListener(this);
pan2.addKeyListener(this);
pan1.add(text);
JLabel nick = new JLabel("Benutzername:");
JLabel pwd = new JLabel("Passwort:");
nick.setBounds(0,0,100,22);
pwd.setBounds(0,27,100,22);
txnick = new JTextField();
txnick.setBounds(105,0,100,22);
txnick.addKeyListener(this);
txpwd = new JPasswordField();
txpwd.setBounds(105,27,100,22);
txpwd.addKeyListener(this);
txnick.addFocusListener(this);
txpwd.addFocusListener(this);
txnick.setName("txnick");
txpwd.setName("txpwd");
JButton but = new JButton("Anmelden");
but.addActionListener(this);
but.setActionCommand("login");
but.setBounds(210,27,100,22);
but.addKeyListener(this);
ausgabe = new JLabel();
ausgabe.setBounds(210,0,500,22);
goon = new JButton("Nächste Stufe");
goon.addActionListener(this);
goon.setActionCommand("goon");
goon.setBounds(580,27,200,22);
goon.setVisible(false);
pan2.add(nick);
pan2.add(pwd);
pan2.add(txnick);
pan2.add(txpwd);
pan2.add(but);
pan2.add(ausgabe);
pan2.add(goon);
frame.getContentPane().add(pan1);
frame.getContentPane().add(pan2);
frame.setVisible(true);
}
public void checkZugang() {
String nick = txnick.getText();
String pwd = new String(txpwd.getPassword());
if (nick.equalsIgnoreCase("Mark")) {
if (pwd.equals("Tequila")) {
ausgabe.setText("Gratuliere Stufe 1 erfolgreich gelöst.");
goon.setVisible(true);
} else {
ausgabe.setText("Passwort falsch. Groß- und Kleinschreibung beachtet?");
txpwd.selectAll();
}
} else {
ausgabe.setText("Benutzername falsch.");
txnick.selectAll();
}
}
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("login")) {
this.checkZugang();
} else if (e.getActionCommand().equals("goon")) {
frame.setVisible(false);
Stufe2 stufe2 = new Stufe2();
}
}
public void keyTyped(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_ENTER ) {
this.checkZugang();
}
}
public void keyReleased(KeyEvent e) {
}
public void focusGained(FocusEvent e) {
Component c = e.getComponent();
if (c.getName().equals("txnick")) {
txnick.selectAll();
} else if (c.getName().equals("txpwd")) {
txpwd.selectAll();
}
}
public void focusLost(FocusEvent e) {
}
}
Das ganze besteht halt aus insgesamt 5 Leveln. Die Anderen sehen auch ungefähr so aus
Ach ja, und für Kritik/Anregungen/Vorschläge jeglicher Art bin ich immer dankbar (was kann ich besser/anders machen?)
Dusk
EDIT:
Hatte vergessen zu erwähnen das ich mcih schon ein bissl im forum durchgewälzt hab und auch schon einige male etwas mit txnick.requestFocusInWindow() usw probiert hab aber irgendwie wollte es nicht so richtig. in nem anderen beitrag hat jemand gesagt das es an der falschen stelle nichts bringt. deswegen poste ich "meinen speziellen" fall ^^
EDIT2:
Der übersicht wegen habe ich den text in der TextArea mit zeilenumbrüchen versehen. hoffe mal dadurch verfälscht sich nichts.