2010-06-09 20 views

Respuesta

39

Al menos debe considerar uno de los métodos JOptionPane como showInputDialog() o showMessageDialog().

Adición: La opción de usar JOptionPane depende más de la idoneidad de la modalidad, que del número de componentes que se muestran. Consulte también How to Make Dialogs.

Adición: Como se señala en un comentario de @camickr, puede establecer el foco en un componente particular utilizando el enfoque discutido en Dialog Focus, citado here.

image

package gui; 

import java.awt.EventQueue; 
import java.awt.GridLayout; 
import javax.swing.*; 

/** @see https://stackoverflow.com/a/3002830/230513 */ 
class JOptionPaneTest { 

    private static void display() { 
     String[] items = {"One", "Two", "Three", "Four", "Five"}; 
     JComboBox<String> combo = new JComboBox<>(items); 
     JTextField field1 = new JTextField("1234.56"); 
     JTextField field2 = new JTextField("9876.54"); 
     JPanel panel = new JPanel(new GridLayout(0, 1)); 
     panel.add(combo); 
     panel.add(new JLabel("Field 1:")); 
     panel.add(field1); 
     panel.add(new JLabel("Field 2:")); 
     panel.add(field2); 
     int result = JOptionPane.showConfirmDialog(null, panel, "Test", 
      JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); 
     if (result == JOptionPane.OK_OPTION) { 
      System.out.println(combo.getSelectedItem() 
       + " " + field1.getText() 
       + " " + field2.getText()); 
     } else { 
      System.out.println("Cancelled"); 
     } 
    } 

    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 

      @Override 
      public void run() { 
       display(); 
      } 
     }); 
    } 
} 
+0

Lo sentimos acerca de la confusión inicial entre respuesta y ejemplo. – trashgod

+0

¿Cómo puedo recuperar la entrada? – nunos

+0

He elaborado más arriba y he añadido un enlace al tutorial. – trashgod

Cuestiones relacionadas