Probleme beim JPasswordField

Knippe

Mitglied
Hallo erstmal,
das ganze ich jetzt mein erster Beitrag, also verzeiht mir!
Ich arbeite derzeit an 2 bzw. 1 kleinen und 1 großen Programm.
Das kleine Programm soll ein Login werden, also man soll ein Passwort eingeben können,
besser wäre es sogar wenn eine Datenbank mit eingebaut werden könnte, sodass man auch 2-3 verschiedene Benutzer anlegen könnte, und dann soll sich durch das Login das eigentliche Programm öffnen, welches NUR durch das Login gestartet werden kann (Vielleicht über "href" und if-else?).
Wie man auf dem Bild sehen kann, gibt es 2 Knöpfe, einer der die Eingabe bestätigen soll und einer der die Eingabe bzw. das Feld löschen soll. (Bitte auch Vorschläge dafür)
Naja und das große Programm wird nicht schwierig werden, sondern nur extrem lang und wird viele Kombinationen beinhalten, soll jetzt aber nicht das Thema sein!
Zusammengefasst:
Ich brauche eine Lösung für ein Login (evtl. mit Benutzern+Datenbank), welches ermöglicht ein 2. Java Programm zu öffnen, was man sonst nicht öffnen kann.
Also ich muss einfach sagen, obwohl ich ein bisschen Websites Programmieren kann (mit HTML) und in der Schule Info habe, komme ich hier an mein Ende.
Würde mich sehr über Antworten, Vorschläge etc. freuen :)

Java.jpg

Hier der Quellcode:

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

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 10.09.2016
  * @author
  */

public class Passwort extends JFrame {
  // Anfang Attribute
  private JLabel jLabel1 = new JLabel();
  private JPasswordField pw = new JPasswordField();
  private JButton jButton1 = new JButton();
  private JButton jButton2 = new JButton();
  private JLabel jLabel2 = new JLabel();

  // Ende Attribute

  public Passwort() {
  // Frame-Initialisierung
  super();
  setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
  int frameWidth = 310;
  int frameHeight = 185;
  setSize(frameWidth, frameHeight);
  Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
  int x = (d.width - getSize().width) / 2;
  int y = (d.height - getSize().height) / 2;
  setLocation(x, y);
  setTitle("PraktiPool Rechner");
  setResizable(false);
  Container cp = getContentPane();
  cp.setLayout(null);
  // Anfang Komponenten
 
  jLabel1.setBounds(8, 24, 259, 57);
  jLabel1.setText("<html>Willkommen bei dem Praktipool Rechner!  Bevor Sie mit der Eingabe beginnen können  müssen Sie sich durch ein Passwort verifizieren!");
  cp.add(jLabel1);
 
  pw.setBounds(8, 104, 153, 25);
 
  cp.add(pw);
 
  jButton1.setBounds(176, 104, 33, 25);
  jButton1.setText("OK");
  jButton1.setMargin(new Insets(2, 2, 2, 2));
  jButton1.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent evt) {
  jButton1_ActionPerformed(evt);
  }
  });
  cp.add(jButton1);
  jButton2.setBounds(216, 104, 57, 25);
  jButton2.setText("Cancel");
  jButton2.setMargin(new Insets(2, 2, 2, 2));
  jButton2.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent evt) {
  jButton2_ActionPerformed(evt);
  }
  });
  cp.add(jButton2);
  jLabel2.setBounds(8, 136, 275, 17);
  jLabel2.setText("  © Jonas Kniepkamp 2016");
  cp.add(jLabel2);
  // Ende Komponenten
 
  setVisible(true);
 
  } // end of public Passwort

  // Anfang Methoden
 

  public static void main(String[] args) {
  new Passwort();
 

  } // end of main

  public void jButton1_ActionPerformed(ActionEvent evt) {
  // TODO hier Quelltext einfügen
  } // end of jButton1_ActionPerformed

  public void jButton2_ActionPerformed(ActionEvent evt)
  {

  } // end of jButton2_ActionPerformed

  // Ende Methoden
} // end of class Passwort
 

Viktim

Bekanntes Mitglied
Wenn du mit Java noch nicht viel gemacht hast, würde ich dir erstmal vorschlagen(wenn das nur ein Übungsprojekt ist)
deine Anmeldedaten in eine Textdatei zu speichern und die Datenbank erstmal zu überspringen :)
Dafür kannst du dir mal den FileReade und FileWriter angucken :)

Dann tust du in deine Methode für die Cancel-Button-Action-Methode einfach ein System.exit(0);
und in der Ok-Button-Action-Methode musst du dann halt alle Passwörter aus der Txtdatei oder Datenbank auslesen und mit dem Eingegebenen Vergleichen.
 

Knippe

Mitglied
Danke Viktim, für deine Antwort!
Ich bin mit meinem Programm schon sehr gut vorran gekommen.
Der Vergleich von Passwort und Benutzer mit dem JPasswordField funtkioniert einwandfrei.
Nur welche Frage sich mir stellt, mit welchem Befehl schaffe ich es durch das erfüllen der if-Bedingung ein anderes Java-Programm, die GUI dieses Programms zu starten..
Habe versucht in meinem Login Programm durch setVisible das ganze zu aktivieren doch das klappt irgenwie nicht. Hier ist mein aktueller Quellcode:

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 11.09.2016
  * @author
  */

public class PraktiPoolLogin extends JFrame {
  // Anfang Attribute


  private JLabel Text1 = new JLabel();
  private JTextField BenutzerEingabe = new JTextField();
  private JLabel Benutzer = new JLabel();
  private JLabel Passwort = new JLabel();
  private JPasswordField PasswortEingabe = new JPasswordField();
  private JButton Login = new JButton();
  private JButton Cancel = new JButton();
  private JLabel Jonas = new JLabel();
  private JLabel Ausgabe = new JLabel();

 
 
  // Ende Attribute
 
  public PraktiPoolLogin() {
    // Frame-Initialisierung
    super();
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    int frameWidth = 300;
    int frameHeight = 235;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    setTitle("PraktiPool-Login:");
    setResizable(false);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten
   

    Text1.setBounds(8, 8, 291, 65);
    Text1.setText("<html>Willkommen bei dem Praktipool Rechner!<br/>Bevor Sie das Programm starten können,<br/>müssen Sie sich mit Ihrem Benutzernamen<br/>und Ihrem Passwort anmelden!</html>");
    cp.add(Text1);
   
   
    BenutzerEingabe.setBounds(8, 104, 121, 25);
    cp.add(BenutzerEingabe);
   
   
    Benutzer.setBounds(8, 88, 131, 17);
    Benutzer.setText("Benutzername:");
    cp.add(Benutzer);
   
    Passwort.setBounds(8, 144, 123, 17);
    Passwort.setText("Passwort:");
    cp.add(Passwort);
   
       
    PasswortEingabe.setBounds(8, 160, 110, 28);
    cp.add(PasswortEingabe);
   
   
    Login.setBounds(160, 160, 49, 25);
    Login.setText("Login");
    Login.setMargin(new Insets(2, 2, 2, 2));
    Login.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton1_ActionPerformed(evt);
      }
    });
    cp.add(Login);
   

   
   
    Jonas.setBounds(144, 192, 155, 17);
    Jonas.setText("©Jonas Kniepkamp 2016");
    cp.add(Jonas);
   
    Ausgabe.setBounds(136, 104, 147, 49);
    Ausgabe.setText("");
    cp.add(Ausgabe);

    Cancel.setBounds(224, 160, 49, 25);
    Cancel.setText("Cancel");
    Cancel.setMargin(new Insets(2, 2, 2, 2));
    Cancel.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton2_ActionPerformed(evt);
      }
    });
    cp.add(Cancel);

    // Ende Komponenten
   
    setVisible(true);
  } // end of public PraktiPoolLogin
 
  // Anfang Methoden
 
  public static void main(String[] args)
    
  {
    new PraktiPoolLogin();
  } // end of main
 
   
    public void jButton1_ActionPerformed(ActionEvent evt)
  {     
    char[] c = PasswortEingabe.getPassword();

    String s = BenutzerEingabe.getText();
    String pw = new String(c);
    Ausgabe.setText("");
    if (s.equals("Jonas") && pw.equals("H30q1c8")  || s.equals("Tim") && pw.equals("1z0H3x7q"))
    {                                                                                                                                                                                                                  
      //hier: Möglichkeit, das andere Java Programm PraktiPoolRechner.java zu öffnen!
      Ausgabe.setText ("Erfolgreich angemeldet!");
      Ausgabe.setBackground(Color.GREEN);
      BenutzerEingabe.setBackground(Color.GREEN);
      PasswortEingabe.setBackground(Color.GREEN);
    }  
    else
    {
       Ausgabe.setText ("<html>Falscher Benutzername<br/> oder Passwort!</html>");
       Ausgabe.setForeground(Color.RED);
       BenutzerEingabe.setText("");
       PasswortEingabe.setText("");
       PasswortEingabe.setBackground(Color.RED);
       BenutzerEingabe.setBackground(Color.RED);
   
    } // end of if-else
   
     
    } // end of if


  public void jButton2_ActionPerformed(ActionEvent evt) {
    Ausgabe.setText("");
    BenutzerEingabe.setText("");
    PasswortEingabe.setText("");
    BenutzerEingabe.setBackground(Color.WHITE);
    PasswortEingabe.setBackground(Color.WHITE);
   
  } // end of jButton2_ActionPerformed

   // Ende Methoden
   // end of class PraktiPoolLogin
}
 

Viktim

Bekanntes Mitglied
Soll das "neue" Programm ein externes Programm sein, also hast du vor z.B. Firefox oder sowas aufzumachen oder möchtest du einfach ein neues Fenster machen?

Externes Programm: Desktop-Klasse
Neues Fenster: Lass es und bearbeite das alte so, das es das beinhaltet, was du haben willst ;)
 

Knippe

Mitglied
Also es soll nach richtiger Eingabe des Logins (Java-GUI), eine neue GUI mit dem eigentlichen Programm (Java-GUI) gestartet werden.
Geht das, dass ich in das bestehende Programm eine weitere GUI "einbauen" kann?
Das könnte man dann ja mit setVisible(), machen ;)
 

Viktim

Bekanntes Mitglied
Versuch mal den abschnitt:

Java:
setResizable(true);
setLocation(new Point(0, 0));
setSize(Toolkit.getDefaultToolkit().getScreenSize());
Der dürfte dir dein Fenster schonmal über den ganzen Bildschirm ziehen :)
wie du dann weitermachst, musst du mal gucken :p ;)
 

Knippe

Mitglied
Ja, also nen maximiertes Fenster habe ich schonmal :)
Gibt es nicht einen Befehl mit dem man durch ein Java Programm ein anderes aufrufen kann ? :/
 

thet1983

Top Contributor
Aufruf
Java:
NeuesFenster neu = new NeuesFenster();

Tipp;
Erbe nicht von JFrame, ausser du änderst das Grundverhalten der Klasse JFrame und das machst du hier nicht, du addest nur Komponenten!

mach dir einfach eine neue Klasse wo die eine Methode hast die das JFrame erstellt.
zb.
Code:
public class NeuesFenster{
  public void createFrame(){
     JFrame f = new JFrame("Zweites Fenster");
     createWidgets();
     addWidgets(f);
     // usw
     f.setVisible(true);
  }
}

ich würde die aber empfehlen die basics zu lernen...
 

Viktim

Bekanntes Mitglied
Du kannst dir genauso wie du es hier auch gemacht hast, ein neues Fenster schreiben, das du dann aber nicht über die Main-Methode aufrufst, sondern halt über deine Methode in deinem Listener ;)
Aber ein neues Fenster ist immer doof... Ich würd das alte nehmen :D
 

Knippe

Mitglied
Danke auch an Dich, thet1983! Habe mich jetzt eher entschieden alles in einem Fenster zu regeln, also auch eine einzige Klasse, erschien für mich einfacher.
Nach dem Login wird eine von mir neue Methode gestartet, welche zunächst dafür sorgt, dass alle vorherigen Login Buttons, TextFields etc. durch setBounds(); "unsichtbar" werden und ich dann im nächsten Schritt neue Buttons hinzufüge die dann im gegenzug "sichtbar" werden.
Wahrscheinlich geht es schöner und kürzer, für mich aber erstmal ausreichend :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
D JavaFX Probleme beim nachtäglichen hinzufügen der jfx dependency AWT, Swing, JavaFX & SWT 7
B 2D-Grafik paintcomponent Probleme beim zeichnen AWT, Swing, JavaFX & SWT 10
L JavaFX Probleme beim Installieren JavaFX11 / JavaFX12 -- Eclipse 2019-03 AWT, Swing, JavaFX & SWT 3
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
F JavaFX Probleme beim automatischen Konvertieren AWT, Swing, JavaFX & SWT 4
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
S AWT Probleme beim Zeichnen AWT, Swing, JavaFX & SWT 3
D JavaFX Probleme bei Service-Klasse beim ändern der GUI AWT, Swing, JavaFX & SWT 8
K Probleme beim zeichnen mit paintComponent() AWT, Swing, JavaFX & SWT 1
C Java FX Probleme beim Schließen einer Stage AWT, Swing, JavaFX & SWT 11
H Swing Probleme beim erstellen eines neuen Objektes durch einen Button AWT, Swing, JavaFX & SWT 10
N 2D-Grafik 2 Probleme beim zeichnen AWT, Swing, JavaFX & SWT 18
C SWT probleme beim einbinden von Images AWT, Swing, JavaFX & SWT 2
S Probleme beim drucken AWT, Swing, JavaFX & SWT 13
D Swing Probleme beim Anzeigen der einzelnen Komponenten AWT, Swing, JavaFX & SWT 16
N Probleme beim positionieren von Elementen AWT, Swing, JavaFX & SWT 2
A Probleme beim FocusListener AWT, Swing, JavaFX & SWT 6
L Probleme beim Refresh von JTable AWT, Swing, JavaFX & SWT 7
S Swing Probleme beim Aktualisieren einer JComboBox nach Auswahländerung AWT, Swing, JavaFX & SWT 2
K JList-Probleme beim Hinzufügen von Elementen AWT, Swing, JavaFX & SWT 3
P Swing Probleme beim Zeichen AWT, Swing, JavaFX & SWT 6
O Probleme beim Zeichnen und AWT-Event-Queue-0 Exception AWT, Swing, JavaFX & SWT 5
A Probleme beim Drucken AWT, Swing, JavaFX & SWT 5
R Probleme beim Zeichnen eines Koordinatensystems AWT, Swing, JavaFX & SWT 10
M Probleme beim Bild einfügen in CenterPanel AWT, Swing, JavaFX & SWT 5
A Probleme beim Drucken (Seite wird abgeschnitten) AWT, Swing, JavaFX & SWT 2
S Probleme beim Neuzeichnen eines JLabels AWT, Swing, JavaFX & SWT 6
W Probleme beim Erstellen einer Tabelle AWT, Swing, JavaFX & SWT 2
T Probleme beim Resizen einer JScrollPane AWT, Swing, JavaFX & SWT 2
M Probleme beim Hinzufügen von Objekten zu getContentPane() AWT, Swing, JavaFX & SWT 2
G Probleme beim Panelstruktur AWT, Swing, JavaFX & SWT 13
E Probleme beim Layout! AWT, Swing, JavaFX & SWT 8
E Probleme beim Layout mit Buttons und CheckboxGroup AWT, Swing, JavaFX & SWT 9
S Probleme beim Laden und Speichern von Dateien AWT, Swing, JavaFX & SWT 6
C Habe Probleme beim Bild laden! *Update 30.11.2006* AWT, Swing, JavaFX & SWT 28
C Probleme beim Serialisieren mit JOptionPane AWT, Swing, JavaFX & SWT 12
C Probleme beim ausführen von Programmen mit Fenstern+Inhalt AWT, Swing, JavaFX & SWT 3
Q JTextPane / Probleme beim Einfügen von <br>-Tags AWT, Swing, JavaFX & SWT 2
G Probleme beim Lösen einer Übungsaufgabe AWT, Swing, JavaFX & SWT 5
C Probleme beim 2. öffnen eines Fensters AWT, Swing, JavaFX & SWT 5
A Probleme beim Ausdrucken AWT, Swing, JavaFX & SWT 4
V Probleme beim Scrollen ein JPanels mit JScrollPane AWT, Swing, JavaFX & SWT 2
R Probleme beim Wiederherstellen eines JInternalFrames AWT, Swing, JavaFX & SWT 4
G Probleme beim Füllen einer JTable AWT, Swing, JavaFX & SWT 2
Juelin Probleme bei Stage.close() AWT, Swing, JavaFX & SWT 23
XWing Swing Image anzeigen und probleme mit klassen AWT, Swing, JavaFX & SWT 3
E repaint Probleme AWT, Swing, JavaFX & SWT 13
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
S GridBagLayout - Probleme mit Bilderanzeige AWT, Swing, JavaFX & SWT 3
J Probleme mit idividueller Tablecell AWT, Swing, JavaFX & SWT 0
J Probleme mit InputDialog AWT, Swing, JavaFX & SWT 4
D JavaFX TextArea Probleme bei langen Zeilen AWT, Swing, JavaFX & SWT 1
G JavaFX SplitPane Anwendung - Controller Probleme AWT, Swing, JavaFX & SWT 5
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
B Probleme Action Listener Taschenrechner AWT, Swing, JavaFX & SWT 27
pph080560 JavaFX Probleme mit FX AWT, Swing, JavaFX & SWT 3
M Probleme mit OpenJDK AWT, Swing, JavaFX & SWT 6
B Swing Probleme mit dem Layout AWT, Swing, JavaFX & SWT 1
Fiedlerdan Image-Pfad Probleme nach Export aus Eclipse AWT, Swing, JavaFX & SWT 31
H JFreeChart - DemoDataSetFactory Probleme AWT, Swing, JavaFX & SWT 1
H LayoutManager Probleme mit Positionierung/Abständen der Komponenten AWT, Swing, JavaFX & SWT 14
A Probleme mit gridheight (GridBagLayout) AWT, Swing, JavaFX & SWT 6
U Opaque Probleme AWT, Swing, JavaFX & SWT 3
S Probleme mit JComboboxen(?) AWT, Swing, JavaFX & SWT 18
S Swing Probleme mit MigLayout AWT, Swing, JavaFX & SWT 2
C Probleme mit createImage AWT, Swing, JavaFX & SWT 1
J Probleme mit contex Menu (javafx) AWT, Swing, JavaFX & SWT 1
J Probleme bei GameofLife AWT, Swing, JavaFX & SWT 24
S JavaFx - Button ActionEvent Probleme AWT, Swing, JavaFX & SWT 3
T Swing Probleme mit repaint() bzw. JScrollPane AWT, Swing, JavaFX & SWT 7
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 0
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 5
J LayoutManager GridBagLayout, probleme mit Anordnung von Objekten AWT, Swing, JavaFX & SWT 6
A Swing Probleme mit dem adden von JButtons zur JScrollPane AWT, Swing, JavaFX & SWT 2
D Swing Probleme mit dem Resizing AWT, Swing, JavaFX & SWT 7
G Probleme mit TextArea AWT, Swing, JavaFX & SWT 5
G JFrame Probleme AWT, Swing, JavaFX & SWT 2
G Cardlayout Refresh Probleme AWT, Swing, JavaFX & SWT 2
J Swing Probleme mit ListSelectionListener(), Inhalte der JList werden gelöscht? AWT, Swing, JavaFX & SWT 6
M JButton Probleme AWT, Swing, JavaFX & SWT 14
L Probleme mit Programm AWT, Swing, JavaFX & SWT 13
blazingblade komischerweise probleme mit jtextfield.gettext() AWT, Swing, JavaFX & SWT 9
Xanny 2D-Grafik Beginner! Probleme mit Swing, Gprahics class und paint AWT, Swing, JavaFX & SWT 13
Sin137 LayoutManager GridBagLayout Probleme AWT, Swing, JavaFX & SWT 6
H Netbeans Designer: Probleme mit JPanel und JFrame AWT, Swing, JavaFX & SWT 2
M Swing Probleme mit Frame.pack() AWT, Swing, JavaFX & SWT 1
M Swing JProgressbar und Outoputstream probleme AWT, Swing, JavaFX & SWT 2
S Swing Probleme mit transparenz der Hintergrundfarbe und JRadioButtons AWT, Swing, JavaFX & SWT 2
Z Probleme mit JPanel's AWT, Swing, JavaFX & SWT 6
T Probleme mit Anzeige von Elementen im JPanel AWT, Swing, JavaFX & SWT 1
Shams Probleme bei dem Hinzufügen von Komponenten zu einem JFrame AWT, Swing, JavaFX & SWT 3
A Swing Probleme mit JScrollPane AWT, Swing, JavaFX & SWT 6
M Layout-Probleme unter Swing AWT, Swing, JavaFX & SWT 5
J JavaFX JavaFX Probleme bei der Anzeige von Text AWT, Swing, JavaFX & SWT 18
A Probleme mit TilledBorder("***") AWT, Swing, JavaFX & SWT 4
F Bildschirmschoner Probleme mit Preview AWT, Swing, JavaFX & SWT 8
X Panel Probleme (Tetris) AWT, Swing, JavaFX & SWT 8
N JTable probleme AWT, Swing, JavaFX & SWT 5
B Probleme bei ImageIO.read (?!) AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen

Neue Themen


Oben