Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JoptionPane.showInputDialog不带取消按钮和退出句柄_Java_Joptionpane - Fatal编程技术网

Java JoptionPane.showInputDialog不带取消按钮和退出句柄

Java JoptionPane.showInputDialog不带取消按钮和退出句柄,java,joptionpane,Java,Joptionpane,我想得到这种输入对话框,问题是它只接受int类型 找到这个 ` ` 我还想处理X(退出按钮和红色按钮关闭按钮),因为它会导致异常 引起的错误 我用的是正则表达式匹配器 at java.util.regex.Matcher.getTextLength(Unknown Source) at java.util.regex.Matcher.reset(Unknown Source) at java.util.regex.Matcher.<init>(Unknown Source) at j

我想得到这种输入对话框,问题是它只接受int类型 找到这个 `

` 我还想处理X(退出按钮和红色按钮关闭按钮),因为它会导致异常 引起的错误

我用的是正则表达式匹配器

at java.util.regex.Matcher.getTextLength(Unknown Source)
at java.util.regex.Matcher.reset(Unknown Source)
at java.util.regex.Matcher.<init>(Unknown Source)
at java.util.regex.Pattern.matcher(Unknown Source)
位于java.util.regex.Matcher.getTextLength(未知源代码)
位于java.util.regex.Matcher.reset(未知源)
位于java.util.regex.Matcher。(未知源)
位于java.util.regex.Pattern.matcher(未知源)
感谢现有的解决方案 您可以使用JOptionPane的InputDialog

String res = JOptionPane.showInputDialog(null, "Enter your name", "The title", JOptionPane.QUESTION_MESSAGE);
System.err.println(res);
请注意,如果用户关闭了对话框或未插入某些文本,则结果为空

但是这个解决方案并不完全像您想要的对话框。您必须创建自己的JOptionPane


自己的解决方案 我建议使用模态JDialog并删除框架(这会给您带来问题)

.SETUNDEARATED(正确)

或者在您自己的类中重写dispose()来处理它

@Override
public void dispose()
{
    //YOUR CODE
    super.dispose();
}
您自己的课程的开始可以如下所示:

public class MyOptionPane extends JDialog
{
    public MyOptionPane(Dialog owner, boolean modal)
    {
        super(owner, modal);
        this.setUndecorated(true); //Remove the frame
    }
}
继续执行以下步骤:

  • 将标签“输入您的姓名”添加到GUI
  • 将文本字段添加到GUI
  • 将OK按钮添加到GUI(使用ActionListener)
  • 在“确定”按钮处附加ActionListener
  • 单击“确定”按钮获取文本字段值,返回它并处理JDialog

  • 如果您有问题或意见,请评论此帖子。

    您试图解决什么问题?我们不会为您编写代码。请查看,因为它会告诉您如何执行此操作。请解释:我还希望处理X(退出按钮),因为它会导致异常。还有您尝试过的错误消息和代码。那我们就可以帮忙了。还读了刚才修改的问题等待帮助
    public class MyOptionPane extends JDialog
    {
        public MyOptionPane(Dialog owner, boolean modal)
        {
            super(owner, modal);
            this.setUndecorated(true); //Remove the frame
        }
    }