java - 将 JTextField 或 JComboBox 的光标移动到开头

标签 java swing jtextfield jcombobox text-cursor

我有一个包含一些文本的 JTextField。当我单击文本字段时,光标移动到字段的末尾。我希望光标在聚焦时移动到字段的开头。

我对可编辑的 JComboBox 也有同样的问题。

我怎样才能在焦点上实现这种光标定位?

最佳答案

/**
* On gaining focus place the cursor at the start of the text.
*/
public class CursorAtStartFocusListener extends FocusAdapter {

    @Override
    public void focusGained(java.awt.event.FocusEvent evt) {
        Object source = evt.getSource();
        if (source instanceof JTextComponent) {
            JTextComponent comp = (JTextComponent) source;
            comp.setCaretPosition(0);
        } else {
            Logger.getLogger(getClass().getName()).log(Level.INFO,
                    "A text component expected instead of {0}",
                    source.getClass().getName());
        }
    }
}

jTextField1.addFocusListener(new CursorAtStartFocusListener());
jComboBox1.getEditor().getEditorComponent().addFocusListener(new CursorAtStartFocusListener());
// Only one instance of CursorAtStartFocusListener needed.

关于java - 将 JTextField 或 JComboBox 的光标移动到开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9954387/

相关文章:

java - Java 中的 Oracle 连接池

Java 组合框 + 图像图标

java - 如何获取调用DocumentFilter的对象

java - 替换 jtable 的内容

java - 无法使用 Documentlistener 清除 jtextfield

java - 显示 ArrayList 中的文本

java - 动态更改在 tomcat 上运行的 Web 应用程序的 Logback 级别

java - 如何为 SOAPBody 添加子节点?

编辑树单元格时,Java JTree 自定义图标更改回默认图标

带有 keyTyped 事件的 Java 获取操作命令