Java 在可编辑JComboBox中设置插入符号位置

Java 在可编辑JComboBox中设置插入符号位置,java,swing,jcombobox,caret,Java,Swing,Jcombobox,Caret,当从组合框中选择的项目比组合框的宽度长时,字符串的结尾将被截断,以仅显示适合的字符串的开头部分。 当组合框设置为可编辑时,它是显示的字符串的结尾,开头被截断(这很有意义,就像用户键入它一样) 是否有方法将插入符号位置设置为条目的开头,以显示值的开头,同时仍允许组合框可编辑?这是通过为组合框编写自定义编辑器来实现的吗?这是一种方法: JComboBox comboBox = new JComboBox( ... ) { @Override public void setSelect

当从组合框中选择的项目比组合框的宽度长时,字符串的结尾将被截断,以仅显示适合的字符串的开头部分。 当组合框设置为可编辑时,它是显示的字符串的结尾,开头被截断(这很有意义,就像用户键入它一样)

是否有方法将插入符号位置设置为条目的开头,以显示值的开头,同时仍允许组合框可编辑?这是通过为组合框编写自定义编辑器来实现的吗?

这是一种方法:

JComboBox comboBox = new JComboBox( ... )
{
    @Override
    public void setSelectedItem(Object item)
    {
        super.setSelectedItem( item );
        ComboBoxEditor editor = getEditor();
        JTextField textField = (JTextField)editor.getEditorComponent();
        textField.setCaretPosition(0);
    }
};
这是一种方式:

JComboBox comboBox = new JComboBox( ... )
{
    @Override
    public void setSelectedItem(Object item)
    {
        super.setSelectedItem( item );
        ComboBoxEditor editor = getEditor();
        JTextField textField = (JTextField)editor.getEditorComponent();
        textField.setCaretPosition(0);
    }
};

谢谢camickr,很有魅力-我以为你一定能做这样的事,但做不出来谢谢camickr,很有魅力-我以为你一定能做这样的事,但做不出来