Problème :
L'exigence d'un utilisateur est de présenter une fenêtre contextuelle formulaire contenant au moins deux JTextFields et JLabels lors d'un clic sur le bouton, mais l'utilisation de JOptionPane.showInputDialog() n'est pas une solution acceptable.
Réponse :
Envisagez d'utiliser JOptionPane des méthodes comme showInputDialog() ou showMessageDialog() malgré le nombre de composants.
Considérations supplémentaires :
Exemple de code :
L'extrait de code suivant démontre l'implémentation d'un formulaire contextuel utilisant un JPanel, un JComboBox et un JTextFields avec JOptionPane.
import java.awt.EventQueue; import java.awt.GridLayout; import javax.swing.*; 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(); } }); } }
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!