vendredi 1 mai 2015

JPasswordField

Hallo,

ich möchte die Eingabe in einem Feld für Passwörter überprüfen. Es soll ein Fenster erscheinen, falls es richtig war oder nicht.
Unter http://ift.tt/1I3yRnD habe ich schon eine Anleitung gefunden.
Bei mir gibt es die Fehlermeldung, dass die Variable "OK" nicht gefunden wird. Außerdem kommen die Fenster nicht, wenn man auf den Button klickt. Im Tutorial von Oracle wird auch "OK" verwendet.
Kann bitte einer helfen?

Java Code:

  1.  
  2. import java.awt.*;
  3. import javax.swing.*;
  4.  
  5. public class Password{
  6.  
  7. private JFrame fr;
  8. private JPanel pa; // falls kein Panel eingesetzt wird, ist das gesamte Fenster eine Schaltflaeche
  9. private JLabel la;
  10. private JButton bu;
  11. private JPasswordField pf;
  12. private MyWindowListener mwl;
  13. private MyActionListener mal;
  14.  
  15. public Password(){
  16. fr = new JFrame("Fenstertitel");
  17. pa = new JPanel();
  18. la = new JLabel("Geben Sie hier Ihr Passwort ein:");
  19. bu = new JButton("OK");
  20. pf = new JPasswordField(10);
  21. mwl = new MyWindowListener();
  22. mal = new MyActionListener();
  23. fr.setSize(300, 300);
  24. fr.setVisible(true);
  25. fr.addWindowListener(mwl);
  26. bu.addActionListener(mal);
  27. pf.setActionCommand(OK);
  28. pf.addActionListener(mal);
  29. pa.add(la);
  30. pa.add(pf);
  31. pa.add(bu);
  32. fr.add(pa);
  33. }
  34.  
  35. public char[] passwortGeben(){
  36. return pf.getPassword();
  37. }
  38.  
  39. public JPasswordField pfGeben(){
  40. return pf;
  41. }
  42. }
  43.  
  44.  
  45. import java.awt.event.*;
  46. import javax.swing.*;
  47.  
  48. public class MyActionListener implements ActionListener{
  49.  
  50. private Password p;
  51. private JFrame fr = new JFrame();
  52.  
  53. public void actionPerformed(ActionEvent e){
  54. String cmd = e.getActionCommand();
  55. if(OK.equals(cmd)){
  56. char[] input = p.passwortGeben();
  57. if(isPasswordCorrect(input)){
  58. JOptionPane.showMessageDialog(fr, "Korrektes Passwort eingegeben!");
  59. }
  60. else{
  61. JOptionPane.showMessageDialog(fr, "Falsches Passwort eingegeben!", "Error Message", JOptionPane.ERROR_MESSAGE);
  62. }
  63. for(int i = 0; i < input.length; i++){
  64. input[i] = 0;
  65. }
  66. }
  67. }
  68.  
  69. private static boolean isPasswordCorrect(char[] input) {
  70. boolean isCorrect = true;
  71. char[] correctPassword = { 't', 'r', 'u', 'e'};
  72.  
  73. if (input.length != correctPassword.length) {
  74. isCorrect = false;
  75. }
  76. else{
  77. for(int i = 0; i < input.length; i++){
  78. if(input[i] != correctPassword[i]){
  79. isCorrect = false;
  80. }
  81. }
  82. }
  83. for(int i = 0; i < correctPassword.length; i++){
  84. correctPassword[i] = 0;
  85. }
  86. return isCorrect;
  87. }
  88. }
  89.  
  90. import java.awt.event.*;
  91.  
  92. public class MyWindowListener extends WindowAdapter{
  93.  
  94. public void windowClosing(WindowEvent e){
  95. System.exit(0); // Vorzeitige Beendigung der Applikation
  96. }
  97. }
  98.  
  99. public class Testablauf{
  100.  
  101. public static void main(String args[]){
  102. Password p = new Password();
  103. }
  104. }


JPasswordField

0 commentaires:

Enregistrer un commentaire