Java Swing динамический JComboBox - PullRequest
       0

Java Swing динамический JComboBox

2 голосов
/ 15 сентября 2011

Я заполнил комбинированный список B1 из базы данных. Когда событие itemStateChanged возникает, оно должно заполнить еще один комбинированный список B2 , но оно не работает.

ArrayList1 = //call method in database connection class()
for (int j = 0; j < ArrayList1.size(); j++) 
{
    if (j == 0)
    {
        combobox1.addItem("Select Any");
    }
    combobox1.addItem(ArrayList1.get(j));
}


combobox1.addItemListener(new ItemListener() 
{
    @Override
    public void itemStateChanged(ItemEvent ie) 
    {
        String catName = (String)combobox1.getSelectedItem();
        if (!catName.equalsIgnoreCase("Select Any"))
        {
            ArrayList2=//call method in DB class with cat_name as argument
            for(int i=0;i < ArrayList2.size();i++)
            {
                if (i == 0)
                {
                    combobox2.addItem("Select Any");
                }
                combobox2.addItem(ArrayList2.get(i));                   
            }                   
        }
    }           
});

первый комбинированный список заполняется из базы данных, но после выбора любого элемента из него второй комбинированный список остается пустым.

а почему отладка этого моего компьютера висит?

Ответы [ 3 ]

2 голосов
/ 15 сентября 2011

вам нужно реализовать ComboBoxModel и добавить / удалить / изменить Items в Model, а не в JComboBox, ни где-то в Array, List или Vector, конечно, возможно, но вы должны выполнить свой код на EDT и всегда заменять Array, List или Vector на конкретизированный JComboBox, не делайте так следующим образом: -)

возможно, у вас есть проблема с Конкуренция в Swing , возможно, изменения сделаны, но за пределами EDT, больше о ваших проблемах передача событий, заключенных в invokeLater () и множественные -jcombobox

1 голос
/ 16 сентября 2011
DefaultComboBoxModel model = new DefaultComboBoxModel(yourstringarray);
                    item_combobox.setModel( model );

н ма проблема решена ....

0 голосов
/ 10 января 2015

Вы должны прочитать:

http://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html

Это поможет вам разобраться с Java-списками.

Кажется, вы должны использовать ActionListener как событие для заполнения второго комбинированного списка.

При возникновении проблем с отладкой вы должны проверить ошибка 6714678 из java bugtracker

-Dsun.awt.disablegrab=true

должен решить вашу проблему отладки (с 2008 года)

См. Не может работать для старых jdks, как в 2007 году ошибка 6517045 говорит:

после обсуждения мы пришли к выводу, что this (отладка на событиях combobox) - это еще одно место, когда его нет целесообразно остановиться в отладчике (то же самое верно для DnD, полноэкранный).

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