首页  >  文章  >  Java  >  如何使用 JOptionPane 创建具有多个 JTextField 和 JLabels 的弹出表单?

如何使用 JOptionPane 创建具有多个 JTextField 和 JLabels 的弹出表单?

Susan Sarandon
Susan Sarandon原创
2024-11-08 15:07:02767浏览

How to Create a Popup Form with Multiple JTextFields and JLabels Using JOptionPane?

使用多个 JTextField 和 JLabels 来显示弹出表单

问题:

用户的要求是呈现一个弹出窗口单击按钮时至少包含两个 JTextFields 和 JLabels 的表单,但使用JOptionPane.showInputDialog() 不是一个可接受的解决方案。

答案:

考虑使用 JOptionPane 方法,如 showInputDialog() 或 showMessageDialog(),尽管组件数量较多。

额外注意事项:

  • JOptionPane 的选择更多地取决于所需的模式而不是显示的元素数量。
  • 通过采用“对话框焦点”中描述的方法,您可以将焦点定向到特定组件。

示例代码:

以下代码片段演示了使用 JPanel、JComboBox 和 JTextFields 与 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();
            }
        });
    }
}

以上是如何使用 JOptionPane 创建具有多个 JTextField 和 JLabels 的弹出表单?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn