首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JOptionPane上设置DocumentFilter

在JOptionPane上设置DocumentFilter
EN

Stack Overflow用户
提问于 2013-02-11 22:40:57
回答 2查看 436关注 0票数 2

我使用的是:

代码语言:javascript
复制
String s = JOptionPane.showInputDialog(...);

获取用户对问题的响应;该对话框设置为显示响应的文本字段。我希望将响应中允许的字符限制为字母数字和'_‘。是否可以在文本字段上安装DocumentFilter,而无需从头开始实现我自己的自定义对话框?

EN

回答 2

Stack Overflow用户

发布于 2013-02-11 23:59:22

从理论上讲,访问JOptionPane的自动创建的文本域是可行的,但这是错误的。

这里有一个更好的解决方案: JOptionPane有一个隐藏的功能:它还接受Swing组件作为消息。因此您需要创建一个带有标签和文本字段的面板(使用您的DocumentFilter),并将其传递给一个确认对话框。确认后,您可以从文本字段中读取文本。

示例如下:

代码语言:javascript
复制
JPanel p = new JPanel(new FlowLayout());
JTextField fld = new JTextField(10);
// set document filter for 'fld' here
p.add(new JLabel("Enter text: "));
p.add(fld);
int val = JOptionPane.showConfirmDialog(null, p, "Test", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null);
if (JOptionPane.OK_OPTION == val) {
  System.out.println("Text: "  + fld.getText());
}
票数 3
EN

Stack Overflow用户

发布于 2013-02-11 23:55:56

不确定如何将DocumentFilter直接添加到文本字段文档。

有关不同的方法,请参阅Stopping Automatic Dialog Closing

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14814336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档