Avatar billede mosquito Nybegynder
17. december 2001 - 14:16 Der er 6 kommentarer og
1 løsning

Hvordan læser jeg indholdet af et JPasswordField.

Jeg er ved at lave et login
her anvender jeg et JTextField til navn
og et JPasswordField.
For at verificere at password findes i en anden klasse
hvor jeg har lavet en hashtable med navn og password
er jeg nødt til at kende indholdet af JPasswordfield.
Når jeg vil hente indholdet af JPasswordField bruger jeg:
String a = new String (passwordField.getText());

jeg får ingen fejl i kompileringen, men disse notes??
hvad skal jeg gøre.. har du eventuel et forslag??

Note: LoginGUI.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.
Avatar billede erikjacobsen Ekspert
17. december 2001 - 14:26 #1
Du kan sikkert nøjes med

  String a = passwordField.getText();

men vis os noget mere kode, ellers kan jeg ikke finde ud af det :)
Avatar billede mosquito Nybegynder
17. december 2001 - 15:08 #2
3 klasser bruges, medarbejderinfo skal se om en medabejder med et password eksisterer (true).. hvis ikke skal LoginGUI lukkes ned uden at resten af programmet lukkes. hvis true skal den  åbne en anden GUI.. og lukke LoginGUI. Måske lidt indviklet men håber jeg har gjort det forståeligt.

import java.text.*;
public class MedarbejderInfo
{

    private String password, medarbejdernavn;
    public MedarbejderInfo()
    {
    }
   
    public MedarbejderInfo(String pword, String manavn)
    {
        medarbejdernavn = manavn;
        password = pword;
    }
   
    public String toString()
    {
    return \"Brugernavn: \"+medarbejdernavn+\"\\n\"+\"Kodeord: \"+password;
    }
       
}


import java.util.Hashtable;
public class Medarbejder
{

    private MedarbejderInfo mi = new MedarbejderInfo();
    private Hashtable mt = new Hashtable();

   

    public Medarbejder()
    {
        mi = new MedarbejderInfo (\"c1\", \"Claus Sulbæk\");
        mt.put(new String (\"c1\"), mi );
    }
       
   
    public MedarbejderInfo getLogin (String pword)
        {
        MedarbejderInfo mi = (MedarbejderInfo) mt.get(new String (pword) );
        if( mi == null )
            throw new RuntimeException(\"Forkert Kodeord!\");
        else
            return mi;
    }
}




import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.text.*;
public class LoginGUI extends JFrame implements ActionListener
{

    private Medarbejder medarbejder = new Medarbejder();
   
    private final String title = \"  Copyright Codehovederne\";
    private final Dimension dimension = new Dimension(300,160);
   
   
    private JLabel brugernavnLabel, passwordLabel;
    private JTextField brugernavnText;
    private JPasswordField passwordField;


    DefaultFocusManager fm = new DefaultFocusManager();
   
    public LoginGUI( )
    {
        setTitle(title);
        setSize(dimension);
        Container c = getContentPane();
        c.setLayout( null );
       
        brugernavnLabel = new JLabel(\"Brugernavn: \");
        passwordLabel = new JLabel(\"Kodeord: \");

        brugernavnText = new JTextField();
        passwordField = new JPasswordField();

        c.add(brugernavnLabel);
        c.add(brugernavnText);
        c.add(passwordLabel);
        c.add(passwordField);
       
        brugernavnLabel.setBounds(32,20,100,20);
        brugernavnText.setBounds(120,20,120,20);
       
        passwordLabel.setBounds(32,60,100,20);
        passwordField.setBounds(120,60,120,20);
   
        brugernavnText.addActionListener(this);
        passwordField.addActionListener(this);
       
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);       
    }

       
    public void actionPerformed(ActionEvent e){
       
   
        if (e.getSource() == brugernavnText)
        {
        fm.focusNextComponent(brugernavnText);
        }
       
        if (e.getSource() == passwordField)
        {
        try
        {
        String a = brugernavnText.getText()+passwordField.getText();
        System.out.println(a); // test til konsol
       
        fm.focusNextComponent(passwordField);
        }
            catch(PasswordNotFoundException pwd){
            //    JOptionPane.showMessageDialog( null,\"Indtast Korrekte Oplysninger!\",\"Info ikke fundet!\", JOptionPane.INFORMATION_MESSAGE);
                brugernavnText.setText(null);
                passwordField.setText(null);
                fm.focusNextComponent(passwordField);
            }
               
        }
           
    }
   
}
Avatar billede martin_schou Nybegynder
17. december 2001 - 16:44 #3
Deprecated betyder blot, at den kaldte metode er udpeget til at udgå fra java i en senere version, men stadig virker i den version du har installeret.

Kig lidt nærmere på de metoder du bruger i LoginGUI og sammenhold med din jdk-dokumentation.
Avatar billede martin_schou Nybegynder
17. december 2001 - 16:49 #4
passwordField.getText();//Deprecated. As of Java 2 platform v1.2, replaced by getPassword().

det tog ca. 3 minutter. Java-dokumentation er din ven.
Avatar billede martin_schou Nybegynder
17. december 2001 - 16:49 #5
Ovenstående skulle have været et svar.
Avatar billede mosquito Nybegynder
17. december 2001 - 18:22 #6
Det er muligt jeg ikke har formuleret spørgsmålet som det var ment, men jeg har brug for en løsning på hvordan jeg får de to textfelter til enten at åbne en ny gui eller blot lukke LoginGUI. Hvis henholdvis password og navn er korrekt eller ej.
Avatar billede jakovski Nybegynder
27. december 2001 - 17:41 #7
Du skal bare have en ActionListener sat på.

Her er lidt kode som du kan kigge på.


private JPasswordField pwf;
private String name, password;
  public LoginGUI() {
    super(\"Kalender System Login\" );
   
    getContentPane().setLayout(new FlowLayout());
   
    JLabel pw = new JLabel(\"Adgangskode\");
      getContentPane().add(pw);
    pwf = new JPasswordField(8);
      getContentPane().add(pwf);
    JButton ok = new JButton(\"ok\");
      getContentPane().add(ok);
      ok.addActionListener(this);
       
    addWindowListener( new WindowHandler() );

    pack();
    setVisible(true);
   
   
  }
 
  private void fejl(String e) {
    JOptionPane.showMessageDialog( null,e,\"fejl\", JOptionPane.ERROR_MESSAGE );
  }
 
  // tjecker password
  public void actionPerformed( ActionEvent e ) {
  try {
      password = pwf.getText();
      name = tf.getText();
  //henter password til det pågældende brugerid
      String temp = Login.hent(name);
      if (password.equals(temp)) {
        setVisible(false);
        MainGUI m = new MainGUI();
      }
      else {
        fejl(\"Forkert Password\");
      }
     

  }
    // hvis den ikke kan hente et password Med    pågældende brugerid
    // kastes en exception som fanges her.
  catch (Exception t) {
      System.out.println( t );
      fejl(\"Forkert Brugernavn\");
  }
}
}
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