JPasswordField warning : deprecation

Status
Nicht offen für weitere Antworten.

swerflash

Aktives Mitglied
Hallo, ich wollte fragen warum diese Warnung kommt und wie ich es richtig machen muss, damit sie nicht mehr kommt:
warning: [deprecation]getText()in javax.swing.jPasswordField has been deprecated


Code:
    private void jSchaltflächeMouseClicked(java.awt.event.MouseEvent evt) {                                           
    
     
        String pw = "test";

        if(pw.equals(jPasswordFeld.getText()))
        {
            jEingabefeld2.setText("Bingo");
        }
        else
        {
            jEingabefeld2.setText("Falsch!");
        }

    }


jEingabefeld2 = jTextField,jPasswordFeld = jPasswordField und JSchaltfläche = jButton.


Danke
 

swerflash

Aktives Mitglied
Wenn ich dich richtig verstehe, muss ich getText mit getPassword erstetzen, wenn ich das mache, dann funktioniert das nicht mehr


Code:
        String pw = "test";

        if(pw.equals(jPasswordFeld.getPassword()))
        {
            jEingabefeld2.setText("Bingo");
        }
        else
        {
            jEingabefeld2.setText("Falsch!");
        }


wenn ich jetzt test eingebe, schreibt er "Falsch" also else.
 
B

Beni

Gast
Ein Blick in die API würde zeigen, dass "getPasswort" einen char-Array zurückliefert, und keinen String. :wink:

Mit "java.util.Arrays.equals" kann man übrigens Arrays hervorragend vergleichen.
 

swerflash

Aktives Mitglied
:bahnhof: ich verstehe die API nicht, leider :cry:

Wie muss ich mein Code anpassen, damit das funktioniert? Ich habe bisschen rumprobiert, ohne Erfolg.
 
B

Beni

Gast
Code:
import java.util.Arrays;

...

char[] x = "test".toCharArray();
char[] pw = passwordField.getPassword();
boolean equals = Arrays.equals( x, pw );
 

swerflash

Aktives Mitglied
Hmm interessant, danke. Hat funktioniert.

So sieht jetzt mein Code aus

Code:
       char[] x = "test".toCharArray();
       char[] pw = jPasswordFeld.getPassword();
       boolean vergleich = Arrays.equals(x,pw);
       
        if(vergleich==true)
        {
            jEingabefeld2.setText("Bingo");
        }
        else
        {
            jEingabefeld2.setText("Falsch!");
        }
Habe ein Paar fragen.

Code:
char[] x = "test".toCharArray();

Damit wandle ich Object x vom Typ char ins Array. Angenommen ich will das später umwandeln und möchte erstmal test als char[] speichern. Ich habe folgendes versucht:
Code:
char[4] x = "test";
er sagt mir, dass mir hier noch ] fehlt ???:L
Code:
boolean vergleich = Arrays.equals(x,pw);
Zu boolean habe ich schon mal was gelesen, aber noch nie angewendet, hier vergleicht er den Inhalt des Objectes x und pw vom Typ Array und gibt true zurück, wenn das wahr ist und false, wenn das falsch ist, und speichert das in die Variable vergleich rein.
Array besteht aus vielen Strings und String bersteht aus vielen chars[]?

Stimmt das was ich oben geschrieben habe, oder habe ich etwas falsch verstanden?

Warum muss ich pw nicht mit .toCharArray zu Array umwandeln, wie mein Object x? Wir haben das doch als char[] gespeichert und später vergleichen dann Arrays mit einander, pw ist aber von Typ char[], oder?


Danke schon mal im Voraus

PS: ich habe übrigens jetzt das in der API gefunden, was du mir unten aus API gezeigt hast, ich habe aber bevor ich hier mein Problem gepostet habe, versucht selber zu finden, nur ohne Erfolg, da ich nicht wusste nach was ich suchen soll und wie ich vorgehen muss, aber langsam verstehe ich das. Vieleicht werde ich bald API endlich verstehen.
 
B

Beni

Gast
swerflash hat gesagt.:
Code:
char[] x = "test".toCharArray();

Damit wandle ich Object x vom Typ char ins Array. Angenommen ich will das später umwandeln und möchte erstmal test als char[] speichern.
Nein: x ist eine Variable vom Typ "char[]" (also ein char-Array).
"test" ist ein hundsnormaler String.
"toCharArray()" ist eine Methode der Klasse "String". Diese Methode liefert als Resultat ein "char[]".

Ich habe folgendes versucht:
Code:
char[4] x = "test";
er sagt mir, dass mir hier noch ] fehlt ???:L
Keine Ahnung wie du darauf kommst, mit Java hat dieser Syntax jedenfalls nichts zu tun...

Code:
boolean vergleich = Arrays.equals(x,pw);
Zu boolean habe ich schon mal was gelesen, aber noch nie angewendet, hier vergleicht er den Inhalt des Objectes x und pw vom Typ Array und gibt true zurück, wenn das wahr ist und false, wenn das falsch ist, und speichert das in die Variable vergleich rein.
Array besteht aus vielen Strings und String bersteht aus vielen chars[]?

x ist ein Array aus chars, pw ist ein Array aus chars.
Arrays ist eine ganz normale Klasse ohne weitere Bedeutung. Sie könnte ebensogut "Habakuck" heissen.
"equals" ist eine statische Methode der Klasse "Arrays", und vergleicht den Inhalt zweier Arrays. Da ist nichts mehr dahinter.

Stimmt das was ich oben geschrieben habe, oder habe ich etwas falsch verstanden?
Hm, beginn mal bei deinem Buch von vorne zu lesen :wink:

Warum muss ich pw nicht mit .toCharArray zu Array umwandeln, wie mein Object x? Wir haben das doch als char[] gespeichert und später vergleichen dann Arrays mit einander, pw ist aber von Typ char[], oder?
char[] ist ein Array, da gibt es nichts umzuwandeln
.toCharArray wirkt nicht auf "x", sondern auf "test". Es verändert "test" aber nicht, sondern es berechnet aus "test" einen neuen Wert, eben der Chararray ['t', 'e', 's', 't'] der dann über "x" angesprochen werden kann.
 

swerflash

Aktives Mitglied
Beni hat gesagt.:
Hm, beginn mal bei deinem Buch von vorne zu lesen :wink:
:lol: :roll: :bae:
Hehe, wird nichts bringen, habe 2 schlechte Bücher erwischt, eins war Java für Dummies und in dem anderem Buch war nur Theorie, keine Beispiele und nicht für Anfänger. Ich werde jetzt versuchen Java mit NetBeans(Matisse GUI Builder) und euch zu lernen ;-) hab schon mehr Fortschritte gemacht in paar Tagen als mit diesen 2 Büchern die ich paar Monate gelesen habe lol.


Ich denke ich habe verstanden, was du mir erklärt hast, danke dir. Und wenn ich richtig verstanden habe, dann:

Code:
char[] x = {'t','e','s','t'};
ist das gleiche wie

Code:
char[]x = "test".toCharArray();


't' ist ein char und test ist ein Array aus chars, in diesem Fall 4 chars, richtig?
 
B

Beni

Gast
Also {'t','e','s','t'} ist ein Array aus chars, ja.

"test" hingegen ist ein String, ein Objekt.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Swing JPasswordField AWT, Swing, JavaFX & SWT 12
K Probleme beim JPasswordField AWT, Swing, JavaFX & SWT 11
OlafHD JPasswordField mit Button eingeben AWT, Swing, JavaFX & SWT 4
J JPasswordField kodiertes Passwort AWT, Swing, JavaFX & SWT 3
W JPasswordField AWT, Swing, JavaFX & SWT 5
C Swing JPasswordField wird nicht angezeigt AWT, Swing, JavaFX & SWT 27
VfL_Freak Swing Frage zu "new JPasswordField( 10 )" AWT, Swing, JavaFX & SWT 6
B Text im JPasswordField AWT, Swing, JavaFX & SWT 5
C Swing JPasswordField Password auslesen AWT, Swing, JavaFX & SWT 7
Y Swing JPasswordField Fehler AWT, Swing, JavaFX & SWT 14
M Swing jPasswordField getPassword() entschlüsseln AWT, Swing, JavaFX & SWT 9
W Swing JPasswordField "leeren" AWT, Swing, JavaFX & SWT 3
H JPasswordField AWT, Swing, JavaFX & SWT 27
M JPasswordfield.getpassword() char[] nicht codiert auslesen? AWT, Swing, JavaFX & SWT 2
G JPopMenu und JPasswordField? AWT, Swing, JavaFX & SWT 7
K JPasswordField AWT, Swing, JavaFX & SWT 3
A Aus einem JPasswordField das Passwort auslesen AWT, Swing, JavaFX & SWT 3
Z Probleme mit JtextField und JPasswordField AWT, Swing, JavaFX & SWT 4
T Suche Methode zum anzeigen eines Textteils im JPasswordfield AWT, Swing, JavaFX & SWT 2
M JPasswordField AWT, Swing, JavaFX & SWT 7
F Eingabe in JPasswordField auf vier Zeichen beschränken AWT, Swing, JavaFX & SWT 3
W JPasswordField AWT, Swing, JavaFX & SWT 6
S JavaFX Warning bei getTableRow( ) vermeidbar? AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben