java - 具有至少两个字段的简单弹出 java 表单

标签 java swing user-interface

当用户单击一个按钮时,我想显示一个应该至少有两个 JTextField 和两个 JLabel 的弹出窗体,所以使用 JOptionPane.showInputDialog 是不可能的。

最佳答案

您至少应该考虑 JOptionPane 之一showInputDialog()showMessageDialog() 等方法。

附录:使用的选择JOptionPane更多地取决于模态的适用性,而不是显示的组件数量。另见 How to Make Dialogs .

附录:如@camickr 的评论所述,您可以使用 Dialog Focus 中讨论的方法将焦点设置到特定组件。 , 引用 here .

image

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();
            }
        });
    }
}

关于java - 具有至少两个字段的简单弹出 java 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3002787/

相关文章:

java - Nifi ExecuteGroovyScript - 类已加载到另一个类加载器中

java - Android 的 LinearLayout for Swing

java - 实时显示动态数据的架构

java - 如果显示对话框,当用户按下后退按钮时调用哪个方法?

C# WPF - 长时间点击按钮操作

java - 如何使用 Java EE 7 WebSockets 实现推送到客户端?

java - Aerospike 的单元测试

java - Spring MVC - 从 JSP 中的列表访问表单中的对象

java - 为什么我的 JAVA GUI 打开多个窗口?

java - 有没有办法让 JSlider(禁用用户输入)在 Java 中保持正常可见性?