powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / помогите с JComboBox
4 сообщений из 4, страница 1 из 1
помогите с JComboBox
    #37785612
KushnirykOleh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот код


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.util.ArrayList;
import java.util.Vector;

import javax.swing.JComboBox;
import javax.swing.JFrame;

public class JComboBoxAutocomplete {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();

list.add("1");
list.add("abc");
list.add("asd");
list.add("asdV");
list.add("A");
list.add("Agb");
list.add("Asd");
list.add("ASD");
list.add("agb");
list.add("ash");
list.add("asdv");
final Testing test = new Testing(list);
JFrame fr = new JFrame();
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fr.setContentPane(test);
fr.pack();
fr.setVisible(true);
test.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if(test.getSelectedItem()!=null)
System.out.println(test.getSelectedItem());

}
});
}

}

class Testing extends JComboBox {
ArrayList<String> combolist;
public Testing(ArrayList<String> var) {

combolist = var;
setEditable(true);

for (int i = 0; i < combolist.size(); i++) {
addItem(combolist.get(i));
}

getEditor().getEditorComponent().addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() != 38 && e.getKeyCode() != 40
&& e.getKeyCode() != 10) {
String a = getEditor().getItem().toString();
removeAllItems();
int matches = 0;

for (int i = 0; i < combolist.size(); i++) {
if (combolist.get(i).toLowerCase().startsWith(a.toLowerCase())) {
addItem(combolist.get(i));
matches++;
}
}
getEditor().setItem(new String(a));
hidePopup();
if (matches != 0) {
showPopup();
}
}
}
});

}
}

Проблемы 2
1) Когда выбирать значение не мишкой а стрелками (вверх вниз) получаешь результат промежуточных значений, а мне надо только когда нажмешь ентер
2) комбобокс работает с автодополнением, но когда вибираеш значение после нескольких букв поиска (первое из тех которые подходят для дополнения) нажимаешь ентер заносится не то, которое первое в списку, а то, которое ввел в поле, хотя его не существует в списке.
Например: вводишь "ab" а в консоль уже 2 раза вывелось "abc" так как оно первое по алфавиту подходит. Выделенное остается "abc" как единственное возможное. Но если нажать ентер в консоль идет ab, хотя такого значения быть не должно.
На самом деле конечно в том, что я пишу ничего не идет в консоль, и лист не из стрингов а из объектов, я немного упростил для облегчения понимания. Помогите кто в свингу шарит.
...
Рейтинг: 0 / 0
помогите с JComboBox
    #37786649
Antidote
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KushnirykOleh,

Проблема1:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        test.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {

                String command = arg0.getActionCommand();
                System.out.println(command);
                if (test.getSelectedItem() != null && "comboBoxEdited".equals(command)) {
                    System.out.println(test.getSelectedItem());
                }

            }
        });


Проблема2:
тут
...
Рейтинг: 0 / 0
помогите с JComboBox
    #37786650
Antidote
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
System.out.println(command);

- только для теста
...
Рейтинг: 0 / 0
помогите с JComboBox
    #37797236
KushnirykOleh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Не подскажете еще как при нажатии на комбобокс (в свернутом состоянии) удалять выбранное значение, или выделить текст чтоб удалить его одним нажатием бекспейса а не выделять вручную или удалять по одной букве
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / помогите с JComboBox
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]