Java - 如何创建自定义对话框?

43 java swing jframe jdialog joptionpane

我在JFrame上有一个按钮,当单击时我想要一个弹出的对话框,其中有多个文本区域供用户输入.我一直在四处寻找如何做到这一点,但我一直在变得更加困惑.有人可以帮忙吗?

Sam*_*num 81

如果你不需要太多自定义行为,那么JOptionPane可以节省大量时间.它负责确定OK/Cancel选项的放置和本地化,并且是一种快速而又脏的方式来显示自定义对话框而无需定义自己的类.大多数情况下,JOptionPane中的"message"参数是一个String,但您也可以传入JComponent或JComponents数组.

例:

JTextField firstName = new JTextField();
JTextField lastName = new JTextField();
JPasswordField password = new JPasswordField();
final JComponent[] inputs = new JComponent[] {
        new JLabel("First"),
        firstName,
        new JLabel("Last"),
        lastName,
        new JLabel("Password"),
        password
};
int result = JOptionPane.showConfirmDialog(null, inputs, "My custom dialog", JOptionPane.PLAIN_MESSAGE);
if (result == JOptionPane.OK_OPTION) {
    System.out.println("You entered " +
            firstName.getText() + ", " +
            lastName.getText() + ", " +
            password.getText());
} else {
    System.out.println("User canceled / closed the dialog, result = " + result);
}
Run Code Online (Sandbox Code Playgroud)