Java 我想将JList所选项目附加到Jtextfield
当我从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.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() );
您是否尝试从字段中获取文本并修改文本而不是替换文本?我不明白您在说什么,请您澄清一下好吗?您是否尝试从字段中获取文本并修改文本而不是替换文本?我不明白您在说什么,请澄清一下好吗?