2013-08-23 20 views
7

Ho una finestra di dialogo personalizzata con due campi di testo, due JLabel e un JButton "ok". Il pop-up è una finestra di accesso. La finestra funziona perfettamente Voglio solo sapere come posso aggiungere un JButton "Annulla", quindi l'utente è in grado di cancellare il login.JOptionPane con nome utente e immissione password

Ecco il mio codice per la finestra:

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; 
} 

Se ne avete bisogno, ecco uno screenshot della finestra di accesso:

Login pop up

Se si clicca sulla "x "nell'angolo destro, si chiude anche. Ma voglio un annullamento JButton, se è facilmente possibile.

  • Grazie per l'aiuto

risposta

6

È necessario utilizzare una finestra di dialogo di tipo confermano OK, CANCEL.

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

Questa è la mia risposta ^^ Grazie mille! – Gerret

+1

Sei il benvenuto amico. +1 anche a te. –

0

È possibile utilizzare dispose() funzione JFrame per chiudere il telaio quando si fa clic sul pulsante. Ti piace questa

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

Sì, un buon inizio, ma ho più il problema che non posso aggiungere un pulsante di secund e/o non so dove! – Gerret

0

È necessario utilizzare JOptionPage.showOptionDialog() che consente di aggiungere pulsanti

+0

ok è comprensibile ma ho il problema che non so cosa devo riempire di messaggio Tipo, icona, opzioni e valore iniziale ... potresti aiutarmi anche con quello? – Gerret

+0

messageType può essere uno qualsiasi di 'ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE o PLAIN_MESSAGE', per il resto è possibile passare' null'. Puoi consultare i documenti per ulteriori informazioni –

+0

... Beh, non capisco ok passa con null nessun problema, ma ho un OptionType e un MessageType qual è la differenza? E al mio codice ho usato 'QUESTION_MESSAGE' su OptionType. Allora, a OptionType ... – Gerret

Problemi correlati