2010-06-09 7 views

risposta

39

È necessario considerare almeno uno dei metodi JOptionPane come showInputDialog() o showMessageDialog().

Addendum: La scelta di utilizzare JOptionPane dipende più dall'adeguatezza della modalità piuttosto che dal numero di componenti visualizzati. Vedi anche How to Make Dialogs.

Addendum: come indicato in un commento di @camickr, è possibile impostare lo stato attivo su un particolare componente utilizzando l'approccio discusso in Dialog Focus, citato 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

Purtroppo la confusione iniziale tra risposta e l'esempio. – trashgod

+0

Come posso recuperare l'input? – nunos

+0

Ho elaborato sopra e aggiunto un collegamento al tutorial. – trashgod

Problemi correlati