Java 我想将JList所选项目附加到Jtextfield

Java 我想将JList所选项目附加到Jtextfield,java,swing,Java,Swing,当我从Jlist中选择一个值时,我希望将其附加到Jtextfield,而不替换现有值, 这就是我到目前为止所尝试的,正如您所看到的,这正在替换现有的值 jlist.addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent arg0) { if (!arg0.getValue

当我从Jlist中选择一个值时,我希望将其附加到Jtextfield,而不替换现有值, 这就是我到目前为止所尝试的,正如您所看到的,这正在替换现有的值

    jlist.addListSelectionListener(new ListSelectionListener() {

        @Override
        public void valueChanged(ListSelectionEvent arg0) {
            if (!arg0.getValueIsAdjusting()) {
                textField.setText(jlist.getSelectedValue());

            }
        }
请帮助我解决此问题

澄清:

jlist.addListSelectionListener(new ListSelectionListener() {

    @Override
    public void valueChanged(ListSelectionEvent arg0) {
        if (!arg0.getValueIsAdjusting()) {
            textField.setText(textField.getText() + jlist.getSelectedValue());

        }
    }
澄清:

jlist.addListSelectionListener(new ListSelectionListener() {

    @Override
    public void valueChanged(ListSelectionEvent arg0) {
        if (!arg0.getValueIsAdjusting()) {
            textField.setText(textField.getText() + jlist.getSelectedValue());

        }
    }

我不喜欢使用getText()/setText()方法。这将生成不准确的文档事件。它将生成一个用于删除所有文本的事件,然后生成另一个用于添加现有文本和不准确的附加文本的事件

您可以更新文本字段的
文档

Document doc = textField.getDocument();
doc.insertString(doc.getLength(), jList.getSelectedValue().toString(), null);
您需要将代码包装在try/catch块中

或者,避免try/catch块的一个技巧是使用:

textField.setCaretPosition( textField.getDocument().getLength() );
textField.replaceSelection( jList.getSelectedValue().toString() );

我不喜欢使用getText()/setText()方法。这将生成不准确的文档事件。它将生成一个用于删除所有文本的事件,然后生成另一个用于添加现有文本和不准确的附加文本的事件

您可以更新文本字段的
文档

Document doc = textField.getDocument();
doc.insertString(doc.getLength(), jList.getSelectedValue().toString(), null);
您需要将代码包装在try/catch块中

或者,避免try/catch块的一个技巧是使用:

textField.setCaretPosition( textField.getDocument().getLength() );
textField.replaceSelection( jList.getSelectedValue().toString() );

您是否尝试从字段中获取文本并修改文本而不是替换文本?我不明白您在说什么,请您澄清一下好吗?您是否尝试从字段中获取文本并修改文本而不是替换文本?我不明白您在说什么,请澄清一下好吗?