Avatar billede zyke Nybegynder
28. september 2000 - 15:16 Der er 3 kommentarer og
1 løsning

Problemer med JPasswordField

Når jeg skriver følgende kode og kører den, får jeg følgende resultat (efter jeg har tastet mit password ind og trykket på knappen):
Dit password er: JC@6f50a8

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class pssword extends JFrame
{
    public JPasswordField txt;
    public JButton knap;
    public static pssword me;
   
    public pssword()
    {
        super (\"hej\");
        setSize(400,500);
       
        txt = new JPasswordField();
        knap = new JButton(\"Tryk her!\");
       
        getContentPane().add(txt, BorderLayout.NORTH);
        getContentPane().add(knap, BorderLayout.SOUTH);
       
        knap.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                String password = \"\" + txt.getPassword();
                JOptionPane.showMessageDialog(me, \"Dit password er: \" + txt.getPassword(), \"PASSWORD TEST\", JOptionPane.PLAIN_MESSAGE);
            }
        });
    }
   
    public static void main(String args[])
    {
    me = new pssword();
    me.show();
    }
}

Hvorfor skriver den det og hvad gør jeg forkert?

Michael
Avatar billede el_gnu Nybegynder
28. september 2000 - 16:10 #1
Problemet ligger i at char[] JPasswordField.getPassword() netop returnerer et char array. For at få en ordentlig String ud af det skal du bruge denne linie:

String password = new String(txt.getPassword());

i stedet for:

String password = \"\" + txt.getPassword();

og så skal den efterfølgende linie også udskiftes med:

JOptionPane.showMessageDialog(me, \"Dit password er: \" + password, \"PASSWORD TEST\", JOptionPane.PLAIN_MESSAGE);

(-: el Gnu
Avatar billede el_gnu Nybegynder
28. september 2000 - 16:21 #2
og så skulle du nok overveje at afslutte dine programmer lidt pænere:

addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e) {
        System.exit(0);
    }
});

ovenstående indsættes i din constructor.
Avatar billede zyke Nybegynder
29. september 2000 - 08:19 #3
Tak, jeg var ikke klar over at man skulle! bruge constructoren når man lavede en String.

zyke
Avatar billede el_gnu Nybegynder
29. september 2000 - 15:35 #4
Det vidste jeg heller ikke, men den første metode virkede jo ikke og så må man slå op i sin reference :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester