首页 > Java > java教程 > 正文

如何在没有 JOptionPane.showInputDialog() 的情况下在 Java 中创建具有多个字段的弹出表单?

Barbara Streisand
发布: 2024-11-07 08:26:03
原创
583 人浏览过

How to Create a Popup Form with Multiple Fields in Java Without JOptionPane.showInputDialog()?

具有多个字段的简单弹出表单

问题:

有没有办法创建不使用 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 取决于模态的适用性,而不是组件的数量。
  • 可以通过引用 Dialog Focus 将焦点设置到特定组件。

以上是如何在没有 JOptionPane.showInputDialog() 的情况下在 Java 中创建具有多个字段的弹出表单?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!