Formulaire contextuel simple avec plusieurs champs
Question :
Existe-t-il un moyen de créer un formulaire contextuel avec plusieurs champs sans utiliser JOptionPane.showInputDialog() ?
Réponse :
Envisagez d'utiliser les méthodes JOptionPane
Bien que l'utilisation des méthodes JOptionPane puisse être initialement rejetée en raison de l'hypothèse qu'elle est limitée à une ligne d'entrée, elle offre des options telles que showInputDialog() et showMessageDialog() qui peuvent prendre en charge des formulaires personnalisés.
Approche alternative
Pour une solution hautement personnalisée, considérez le code suivant :
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(); } }); } }
Considérations supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!