首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让InputVerifier与可编辑的JComboBox一起工作

如何让InputVerifier与可编辑的JComboBox一起工作
EN

Stack Overflow用户
提问于 2008-09-10 16:20:21
回答 2查看 3.3K关注 0票数 3

我有一个带有自定义inputVerifyerJComboBox,当它被设置为可编辑时,它会限制MaxLength。

verify方法似乎从未被调用过。

JTextField fine上调用相同的验证器。

我可能做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-09-10 17:38:35

我找到了一种解决方法。我想我应该让下一个有这个问题的人知道。

基本上。不是在ComboBox上设置inputVerifier,而是将它设置为它的“编辑器组件”。

代码语言:javascript
复制
JComboBox combo = new JComboBox();
JTextField tf = (JTextField)(combo.getEditor().getEditorComponent());
tf.setInputVerifier(verifyer);
票数 8
EN

Stack Overflow用户

发布于 2008-09-10 16:40:48

给我们看一小段你的代码。

代码语言:javascript
复制
package inputverifier;

import javax.swing.*;

    class Go {
    public static void main(String[] args) {
        java.awt.EventQueue.invokeLater(new Runnable() { public void run() {
            runEDT();
        }});
    }
    private static void runEDT() {
        new JFrame("combo thing") {{
            setLayout(new java.awt.GridLayout(2, 1));
            add(new JComboBox() {{
                setEditable(true);
                setInputVerifier(new InputVerifier() {
                    @Override public boolean verify(JComponent input) {
                        System.err.println("Hi!");
                        return true;
                    }
                });
            }});
            add(new JTextField());
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            pack();
            setVisible(true);
        }};
    }    
}

Looks like it's a problem with JComboBox being a composite component.我建议避免这种讨厌的UI解决方案。

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

https://stackoverflow.com/questions/54567

复制
相关文章

相似问题

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