当前位置: 首页 > 知识库问答 >
问题:

没有取消按钮和退出句柄的JoptionPane.ShowInputDialog

晋安国
2023-03-14
 String[] options = {"OK"};

int selectedOption = JOptionPane.showOptionDialog(null, panel, "The Title", JOptionPane.NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options , options[0]);

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

我在用regex.matcher

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)

谢谢

共有1个答案

南门鸿雪
2023-03-14

可以使用JOptionPane的InputDialog

String res = JOptionPane.showInputDialog(null, "Enter your name", "The title", JOptionPane.QUESTION_MESSAGE);
System.err.println(res);

请注意,如果用户关闭了对话框或没有插入一些文本,则结果为NULL。

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

@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
    }
}

继续执行以下步骤:

  1. 向GUI添加标签“输入您的姓名”
  2. 将Textfield添加到GUI中
  3. 向GUI添加OK按钮(使用ActionListener)
  4. 在“确定”按钮处附加ActionListener
  5. 在“OK”单击时获取textfield值,返回它并处理您的JDialog

如果你有问题或评论,请评论这篇文章。

 类似资料:
  • 我制作了一个按钮,可以创建一个JFileChooser,这样用户就可以打开一个。txt文件,下面是按钮的动作侦听器中的代码: 如果您选择。txt文件在文件选择器中,但如果您只需选择一个文件,然后按“取消”并退出,它也可以工作。我想这是因为getSelectedFile(),但我想知道是否有办法确保用户选择了一个文件,并在文件选择器内按open作为获取文件的条件?

  • 使用Inspect.exe我可以看到应用程序组件的树结构中存在一个按钮,但我找不到获取该按钮句柄的方法。这是控件的Inspect.exe输出: 这个按钮的特殊之处在于它没有hwnd值。(hwnd: 0x0)。这是我试图获得对该按钮的引用的内容: 在本例中,hwnd变量是包含按钮的应用程序主窗口的句柄。 在阅读FindWindowEx的留档时,看起来似乎有多种方法可以使用不同的参数,我觉得我已经尝试

  • 我一直在尝试在程序中找到特定帮助按钮的句柄,然后向其发送BN\U CLICK消息。为了调试,我查看了父窗口和按钮的句柄。 调试将为hWndParent返回一个数字,但为按钮返回0。我从间谍那里得到了这些课程。1. 这可能会因为应用程序中具有相同类的两个“帮助”按钮而变得复杂。这是我试图使用帮助按钮获取句柄的应用程序窗口的图片,我想单击用红框突出显示的帮助按钮。2 我尝试添加通过AutoIT Inf

  • 我已经看到,这在其他类型的对话框窗口中是可能的,如“ShowConfirmDialog”,其中可以指定按钮的数量和它们的名称;但是在使用“ShowInputDialog”时是否可以实现相同的功能?我似乎在API中找不到这种类型的东西。也许我只是错过了,但任何帮助都很感激。

  • 我想得到工具栏按钮的句柄。我知道它的ID和工具栏按钮所在的窗口句柄。但是GetDlgItem函数似乎不适用于工具栏按钮。 我原以为具有正确参数的函数SendMessage()可以获得句柄,但我找不到任何有助于实现此目的的msg参数。 什么函数可以帮助我获得它的句柄?