1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
241
241
EMPFEHLEN
-
23.08.11 15:46 #1
Hallo zusammen,
steh' leider gerade auf dem Schlauch - ich versuche gerade eine Maske mit zwei JPasswordFields zu basteln ...
Code java:1 2
public JPasswordField fPW_1 = new JPasswordField( 10 ); public JPasswordField fPW_2 = new JPasswordField( 10 );
Jetzt sagt mir die API, das der übergebenen Integer-Wert "die Anzahl der Spalten" darstellt, was aber scheinbar, wie ich vorhin feststellen musste, mitnichten die maximale Anzahl einzugebender Zeichen ist ...
Frage (1) : von was für Spalten ist denn hier die Rede?
Ich habe dann versucht, die Länge über einen KeyEventListener zu regeln :
Code java:1 2 3 4 5 6 7 8 9 10 11
void fPW_1_keyReleased( KeyEvent e ) { if( fPW_1.getPassword().length == 10 ) { Toolkit.getDefaultToolkit().beep(); // ##################################################################### // hier möchte ich die weitere Eingabe unterbinden oder - besser noch - gleich mit dem Cursor zu fPW_2 springen !! // ##################################################################### } } // fPW_1_keyReleased
Frage (2) : siehe Kommentar !
Danke und Gruß
KlausGeändert von vfl_freak (23.08.11 um 15:48 Uhr)
Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
23.08.11 16:05 #2
Hi,
also eigentlich sollte die Zahl im Konstruktor schon die Begrenzung der Passwordlänge beschränken. Außer ich verstehe hier irgendetwas nicht richtig.
Du kannst die Passwordlänge aber auch noch so beschränken:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
import java.awt.GridLayout; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JPasswordField; public class JPassword extends JPanel { private final JPasswordField fPW_1; private final JPasswordField fPW_2; public JPassword(final int maxLength) { super(new GridLayout(0, 1)); this.fPW_1 = new JPasswordField(10); fPW_1.addKeyListener(new KeyAdapter() { private int pwLength = 0; @Override public void keyPressed(KeyEvent e) { if(KeyEvent.VK_BACK_SPACE == e.getKeyCode()) { System.out.println("remove char"); if(pwLength > 0) { pwLength--; } } else if(pwLength < maxLength) { System.out.println("add char"); pwLength++; } else { char[] password = fPW_1.getPassword(); fPW_1.setText(new String(cutPw(password, maxLength))); System.out.println("max chars reached"); fPW_2.requestFocus(); } } }); add(fPW_1); this.fPW_2 = new JPasswordField(10); fPW_2.addKeyListener(new KeyAdapter() { private int pwLength = 0; @Override public void keyPressed(KeyEvent e) { if(KeyEvent.VK_BACK_SPACE == e.getKeyCode()) { System.out.println("remove char"); if(pwLength > 0) { pwLength--; } } else if(pwLength < maxLength) { System.out.println("add char"); pwLength++; } else { char[] password = fPW_2.getPassword(); fPW_2.setText(new String(cutPw(password, maxLength))); System.out.println("max chars reached"); fPW_1.requestFocus(); } } }); add(fPW_2); } private char[] cutPw(char[] pw, int maxLength) { int pwLength = maxLength; if(pw.length < pwLength) { pwLength = pw.length; } char[] pwChar = new char[pwLength]; for(int i = 0; i < pwChar.length; i++) { pwChar[i] = pw[i]; } return pwChar; } public static void main(String[] args) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 400); frame.setLayout(new GridLayout(0, 1)); frame.add(new JPassword(10)); frame.setVisible(true); } }
Gruß
FabioGeändert von Fabio Hellmann (24.08.11 um 07:59 Uhr) Grund: Code nochmals überarbeitet - jetzt funktionierts
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
23.08.11 16:17 #3
Hallo Fabio,
Danke schön
Das ist ein sehr interessanter Ansatz, den ich sofort ausprobieren werde!
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
23.08.11 17:27 #4SE Tutorials.de Gastzugang
Nun ... ja da versteht ihr was falsch : der übergebene int-Wert gibt nur die Darstellungslänge an *analog HTML : length="xx" sichtbare Anzahl*. Um jetzt sinnvoll die Eingabe zu überprüfen sollte man von PlainDocument ableiten und dieses dann setzen. Damit geht das ganze sehr viel einfacher und ohne KeyListener.
-
23.08.11 21:00 #5
- Registriert seit
- Jun 2009
- Beiträge
- 870
Warum möchtest du die Passwortlänge auf 10 begrenzen? wozu so was?
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
24.08.11 08:08 #6Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
24.08.11 08:11 #7
Moin,
also mein Code den ich oben gepostet habe funktioniert jetzt. Ich habe ihn vorhin nochmal überarbeitet.
Gruß
FabioBitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
Ähnliche Themen
-
Frage zu Generics: Unterschied zwischen "Object" und "? extends Object"?
Von DarthShader im Forum JavaAntworten: 10Letzter Beitrag: 14.03.11, 08:20 -
Richtige Syntax bei Operatorüberladung, wann sind "friend", "const", "&" nötig?
Von mrs_schokokeks im Forum C/C++Antworten: 4Letzter Beitrag: 25.08.10, 19:13 -
Eingabe in der timeline: "time*100" - bei Effekt "turbulentes Versetzen"-"Evolution"
Von MTMonline im Forum Videoschnitt, Videotechnik & -produktionAntworten: 2Letzter Beitrag: 25.04.08, 09:49 -
Frage zu "switch"+"include"
Von NemoFinder im Forum PHPAntworten: 23Letzter Beitrag: 04.10.05, 00:54 -
Finder methods + JBoss + Was expecting one of: "CONCAT" "SUBSTRING" ... "(" ... <STRI
Von cengizhdde im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 6Letzter Beitrag: 27.05.05, 15:29





Zitieren

Login





