gpt4 book ai didi

java - 在 JOptionPane 上设置 DocumentFilter

转载 作者:行者123 更新时间:2023-11-30 06:26:06 28 4
gpt4 key购买 nike

我正在使用:

String s = JOptionPane.showInputDialog(...);

从用户那里得到对问题的回复;该对话框设置为显示响应的文本字段。我想将响应中允许的字符限制为仅字母数字和“_”。是否可以在文本字段上安装 DocumentFilter 而无需从头开始实现我自己的自定义对话框?

最佳答案

理论上可以访问 JOptionPane 的自动创建的文本字段,但恕我直言,这是错误的方法。

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

这是示例:

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());
}

关于java - 在 JOptionPane 上设置 DocumentFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14814336/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com