2011-07-02 61 views

Respuesta

109

Sí. Sabes que puedes poner Object en el parámetro Object de la mayoría de JOptionPane.showXXX methods, y con frecuencia ese Object es JPanel.

En su situación, tal vez usted podría utilizar un JPanel que tiene varias JTextFields en ella:

import javax.swing.*; 

public class JOptionPaneMultiInput { 
    public static void main(String[] args) { 
     JTextField xField = new JTextField(5); 
     JTextField yField = new JTextField(5); 

     JPanel myPanel = new JPanel(); 
     myPanel.add(new JLabel("x:")); 
     myPanel.add(xField); 
     myPanel.add(Box.createHorizontalStrut(15)); // a spacer 
     myPanel.add(new JLabel("y:")); 
     myPanel.add(yField); 

     int result = JOptionPane.showConfirmDialog(null, myPanel, 
       "Please Enter X and Y Values", JOptionPane.OK_CANCEL_OPTION); 
     if (result == JOptionPane.OK_OPTION) { 
     System.out.println("x value: " + xField.getText()); 
     System.out.println("y value: " + yField.getText()); 
     } 
    } 
} 
+5

+1, y voy a tirar en un enlace a Dialog Focus (http://tips4java.wordpress.com/2010/03/14/dialog-focus/) que incluye una clase simple para establecer el foco en un campo de texto que puede serle útil. – camickr

+0

@Marco: consulte los [Tutoriales de Swing] (http://download.oracle.com/javase/tutorial/uiswing/components/index.html) y, en particular, la sección sobre [JPanels] (http://download.oracle.com/javase/tutorial/uiswing/components/panel.html) –

26

esta es mi solución

JTextField username = new JTextField(); 
JTextField password = new JPasswordField(); 
Object[] message = { 
    "Username:", username, 
    "Password:", password 
}; 

int option = JOptionPane.showConfirmDialog(null, message, "Login", JOptionPane.OK_CANCEL_OPTION); 
if (option == JOptionPane.OK_OPTION) { 
    if (username.getText().equals("h") && password.getText().equals("h")) { 
     System.out.println("Login successful"); 
    } else { 
     System.out.println("login failed"); 
    } 
} else { 
    System.out.println("Login canceled"); 
} 
+4

Solución simple y rápida. Muchas gracias. Muy útil. – DeanMWake

Cuestiones relacionadas