具有多个字段的简单弹出表单
问题:
有没有办法创建不使用 JOptionPane.showInputDialog() 的情况下具有多个字段的弹出表单?
答案:
考虑使用 JOptionPane 方法
虽然使用 JOptionPane 方法可能一开始会被忽略,因为它仅限于一行输入,但它提供了诸如 showInputDialog() 和 showMessageDialog() 之类的选项,可以容纳自定义表单。
替代方法
对于高度自定义的解决方案,请考虑以下代码:
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(); } }); } }
其他注意事项:
以上是如何在没有 JOptionPane.showInputDialog() 的情况下在 Java 中创建具有多个字段的弹出表单?的详细内容。更多信息请关注PHP中文网其他相关文章!