如何在java中制作弹出窗口

2022-09-01 07:33:16

我目前正在开发一个Java应用程序。

我想显示一个包含文本区域和按钮的新窗口。

你有什么想法吗?


答案 1

同样的答案:JOptionpane,举个例子:)

package experiments;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class CreateDialogFromOptionPane {

    public static void main(final String[] args) {
        final JFrame parent = new JFrame();
        JButton button = new JButton();

        button.setText("Click me to show dialog!");
        parent.add(button);
        parent.pack();
        parent.setVisible(true);

        button.addActionListener(new java.awt.event.ActionListener() {
            @Override
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                String name = JOptionPane.showInputDialog(parent,
                        "What is your name?", null);
            }
        });
    }
}

enter image description here


答案 2

嗯,已经有一段时间了,但从我的记忆中...
如果你想要一个自定义窗口,你可以创建一个新的框架,让它像在主窗口中一样显示。Java还有一个很棒的对话框库,你可以在这里查看:

如何制作对话框

这可能能够以更少的努力为您提供所需的功能。

Object[] possibilities = {"ham", "spam", "yam"};
String s = (String)JOptionPane.showInputDialog(
                    frame,
                    "Complete the sentence:\n"
                    + "\"Green eggs and...\"",
                    "Customized Dialog",
                    JOptionPane.PLAIN_MESSAGE,
                    icon,
                    possibilities,
                    "ham");

//If a string was returned, say so.
if ((s != null) && (s.length() > 0)) {
    setLabel("Green eggs and... " + s + "!");
    return;
}

//If you're here, the return value was null/empty.
setLabel("Come on, finish the sentence!");

如果您不关心限制用户的选择,则可以使用 showInputDialog 方法的一种形式,该方法采用较少的参数,或者为对象数组指定 null。在 Java 外观和感觉中,用 null 代替可能性会导致一个对话框,其中包含一个文本字段,如下所示: