Изменение значения автозаполнения JComboBox - PullRequest
3 голосов
/ 30 декабря 2011

Я всегда получаю сообщение об ошибке моего автозаполнения JComboBox.Для автоматического завершения моего jcombobox я использовал этот скрипт http://w_w.orbital -computer.de / JComboBox / .Когда я их создаю, я делаю это так:

final Object[] elements = new Object[] {"Please refresh your list"};
comboBox[i] = new JComboBox(elements);
comboBox[i].setEditable(true);                                  
new AutoCompleteJComboBox(comboBox[i]);

Это прекрасно работает, если я просто использую его с новыми jcombobox, но если я изменяю их значения следующим образом:

comboBox[i].removeAllItems();    
comboBox[i].setModel(new JComboBox<>(ListWithNames).getModel());
comboBox[i].setEditable(true);
new AutoCompleteJComboBox(comboBox[i]);

Iполучите следующее сообщение об ошибке:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: bad position: 11
    at javax.swing.text.JTextComponent.setCaretPosition(Unknown Source)
    at src.AutoCompleteJComboBox.highlightCompletedText(AutoCompleteJComboBox.java:146)
    at src.AutoCompleteJComboBox.access(AutoCompleteJComboBox.java:145)
    at src.AutoCompleteJComboBoxactionPerformed(AutoCompleteJComboBox.java:30)
    at javax.swing.JComboBox.fireActionEvent(Unknown Source)
    at javax.swing.JComboBox.setSelectedItem(Unknown Source)
    at javax.swing.JComboBox.setSelectedIndex(Unknown Source)
    at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(Unknown Source)
    at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at javax.swing.plaf.basic.BasicComboPopupprocessMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access(Unknown Source)
    at java.awt.EventQueuerun(Unknown Source)
    at java.awt.EventQueuerun(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomaindoIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomaindoIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueuerun(Unknown Source)
    at java.awt.EventQueuerun(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomaindoIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

эта позиция 11 является длиной первого значения в ListWithNames, кроме того, первый элемент в списке все еще работает как fin, но для других элементов это только первая буквавыделенный текст и сообщение об ошибке.

AutoCompleteJComboBox.java это этот файл с другим именем в строке 146 это

editor.setCaretPosition(this.getLength());

Я надеюсь, что кто-то может помочь мне сthis.

(извините за ссылку вверху, но я не могу публиковать более двух)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...