2013-08-23 16 views
7

Ich habe meine eigene Dialog Pop-up mit zwei Textfeldern, zwei JLabel und einem "ok" JButton. Das Popup ist ein Anmeldefenster. Das Fenster funktioniert perfekt Ich möchte nur wissen, wie ich einen "Abbrechen" JButton hinzufügen kann, damit der Benutzer die Anmeldung abbrechen kann.JOptionPane mit Benutzername und Passwort eingeben

Hier ist mein Code für das Fenster:

public Hashtable<String, String> login(JFrame frame) { 
    Hashtable<String, String> logininformation = new Hashtable<String, String>(); 

    JPanel panel = new JPanel(new BorderLayout(5, 5)); 

    JPanel label = new JPanel(new GridLayout(0, 1, 2, 2)); 
    label.add(new JLabel("E-Mail", SwingConstants.RIGHT)); 
    label.add(new JLabel("Password", SwingConstants.RIGHT)); 
    panel.add(label, BorderLayout.WEST); 

    JPanel controls = new JPanel(new GridLayout(0, 1, 2, 2)); 
    JTextField username = new JTextField(); 
    controls.add(username); 
    JPasswordField password = new JPasswordField(); 
    controls.add(password); 
    panel.add(controls, BorderLayout.CENTER); 

    JOptionPane.showMessageDialog(frame, panel, "login", JOptionPane.QUESTION_MESSAGE); 

    logininformation.put("user", username.getText()); 
    logininformation.put("pass", new String(password.getPassword())); 
    return logininformation; 
} 

Wenn Sie es brauchen, hier ist ein Screenshot des Anmeldefensters:

Login pop up

Wenn Sie auf das „x würde klicken "In der rechten Ecke schließt es auch. Aber ich möchte einen JButton abbrechen, wenn es einfach möglich ist.

  • Vielen Dank für Hilfe

Antwort

6

Sie müssen hinzufügen können einen OK, Dialog CANCEL Typ bestätigen verwenden.

JOptionPane.showConfirmDialog(
      frame, panel, "login", JOptionPane.OK_CANCEL_OPTION); 
+0

Das ist meine Antwort ^^ Vielen Dank! – Gerret

+1

Gern geschehen, Kumpel. +1 an dich auch. –

0

Sie dispose() Funktion auf JFrame verwenden können um den Rahmen zu schließen, wenn Sie auf den Button klicken. Gefällt Ihnen dieses

jButton1.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e){ 
     frameName.dispose(); 
    } 
}); 
+0

Ja, das ist ein guter Anfang, aber ich habe mehr das Problem, dass ich eine zweite Taste hinzufügen kann und/oder weiß nicht wo! – Gerret

0

benötigen Sie JOptionPage.showOptionDialog() zu verwenden, die Tasten

+0

okay ist verständlich, aber ich habe das Problem, dass ich nicht weiß, was ich MessageType, Symbol, Optionen und InitialValue ausfüllen muss ... könnten Sie mir dabei helfen? – Gerret

+0

messageType kann eine der folgenden sein: ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE oder PLAIN_MESSAGE, ansonsten können Sie "null" übergeben. Sie können Dokumente für weitere Informationen konsultieren –

+0

... Nun, ich bekomme es nicht OK pass mit null kein Problem, aber ich habe eine OptionType und eine MessageType, was ist der Unterschied? Und bei meinem Code habe ich bei OptionType 'QUESTION_MESSAGE' verwendet. Also was zu OptionType ... – Gerret

Verwandte Themen