Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hashtable, получение списка 
:(
    Опции темы
XClan
Дата 14.12.2004, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 14.10.2003
Где: Планета Сириус

Репутация: нет
Всего: 3



Как получить список?.. В моем случае берет только последнее имя и больше ничего!!!
Код

private void DevTypeCombActionPerformed(java.awt.event.ActionEvent evt) {
 Object ob = DevTypeComb.getSelectedItem();
       if(ob == null)
           return;
       java.lang.System.out.println("lll : " + ob);
       Object selDev=(PrDevParams)devList.get(ob);
       java.lang.System.out.println("sld : " + selDev);
       if(selDev == null)
           return;
       if(currentDev != null)
           if(currentDev.equals(selDev))
           return;
       currentDev=(PrDevParams)selDev;
       java.lang.System.out.println("cud test 2 : " + currentDev);
       DefaultTableModel model = (DefaultTableModel)SysTable.getModel();
       //SysTable.removeAll();
       while(model.getRowCount() > 0)
           model.removeRow(0);
       model.fireTableDataChanged();
       SysTable.repaint();
       if(currentDev.size() > 0){
           Object [][] oo=initPn(currentDev);
           if(oo != null)
           for(int i=0; i < oo.length; i++)
               model.addRow(oo[i]);
       }
       model.fireTableDataChanged();
       SysTable.repaint();
       if(ifList == null)
           return;
       ifList = currentDev.getAllIfTypesList();
       Iterator it=ifList.entrySet().iterator();
       if(!it.hasNext())
           return;
       Map.Entry ent=(Map.Entry)it.next();
       String iftn= (String)ent.getKey();  //Здесь получаем имя
       PrIfParams ifpr=(PrIfParams)ent.getValue();
       CatCobmo.removeAllItems();
       CatCobmo.addItem(iftn); //Тут она вставляется
       CatCobmo.repaint();
   }


ПРи выборе в DevTypeComb(комбобоксе) я должен получить список для другого комбобокса ( CatCobmo )
Но получается забрать только последнее имя для CatCombo.. А мне нужен список...
Хотел испробовать ...

Код

String iftn= (String)ent.getKey();
for(int j=0; j<вот тут что надо ?; j++) //чтобы получить список или я не то совсем делаю???




--------------------
rm -rf /bin/laden
PM MAIL WWW   Вверх
XClan
Дата 14.12.2004, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 14.10.2003
Где: Планета Сириус

Репутация: нет
Всего: 3



Исправил на
Код

   private void DevTypeCombActionPerformed(java.awt.event.ActionEvent evt) {
 Object ob = DevTypeComb.getSelectedItem();
       if(ob == null)
           return;
       java.lang.System.out.println("lll : " + ob);
       Object selDev=(PrDevParams)devList.get(ob);
       java.lang.System.out.println("sld : " + selDev);
       if(selDev == null)
           return;
       if(currentDev != null)
           if(currentDev.equals(selDev))
           return;
       currentDev=(PrDevParams)selDev;
       java.lang.System.out.println("cud test 2 : " + currentDev);
       DefaultTableModel model = (DefaultTableModel)SysTable.getModel();
       //SysTable.removeAll();
       while(model.getRowCount() > 0)
           model.removeRow(0);
       model.fireTableDataChanged();
       SysTable.repaint();
       if(currentDev.size() > 0){
           Object [][] oo=initPn(currentDev);
           if(oo != null)
           for(int i=0; i < oo.length; i++)
               model.addRow(oo[i]);
       }
       model.fireTableDataChanged();
       SysTable.repaint();
       if(ifList == null)
           return;
       //CatCobmo.removeAllItems();
       ifList = currentDev.getAllIfTypesList();
       Iterator it=ifList.entrySet().iterator();
       if(!it.hasNext())
           return;
       Map.Entry ent=(Map.Entry)it.next();
       String iftn= (String)ent.getKey();
       java.lang.System.out.println("TEST Key  : " + iftn);
       PrIfParams ifpr=(PrIfParams)ent.getValue();
       java.lang.System.out.println("TEST Ifpar: " + ifpr);
       currentIf=ifpr;
       CatCobmo.addItem(iftn);
       java.lang.System.out.println("In CatCobmo  adden : " + iftn);
       while(it.hasNext()){
           iftn= (String)ent.getKey();
           CatCobmo.addItem(iftn);
           java.lang.System.out.println("In CatCobmo2 adden : " + iftn);
       }
       CatCobmo.repaint();
   }

Но на этот раз то что осталось добавляет до бесконечности раз!!!!!!!!!! Офигеваю просто! Вроде должно добавляться до тех пор пока не кончится...с помощью while(it.hasNext())
Есть лекарство??


--------------------
rm -rf /bin/laden
PM MAIL WWW   Вверх
DarkDS
Дата 14.12.2004, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 4
Всего: 16



У тебя не вызывается it.next() в конце цикла. То есть и будет бесконечно. Нужно примерно так:

Код

Iterator it=ifList.entrySet().iterator();
while( it.hasNext() )
{
      Map.Entry ent=(Map.Entry)it.next();
      String iftn= (String)ent.getKey();
      PrIfParams ifpr=(PrIfParams)ent.getValue();
      currentIf=ifpr;
      CatCobmo.addItem(iftn);
      java.lang.System.out.println("In CatCobmo  adden : " + iftn);
}
CatCobmo.repaint();

PM MAIL   Вверх
XClan
Дата 14.12.2004, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 14.10.2003
Где: Планета Сириус

Репутация: нет
Всего: 3



То есть
Код

if(!it.hasNext())
           return;

исключить??
Я попробовал твой метод , работает нормально! Правда у меня все подряд добавляется, а не то что относится к выбранному объекту в DevTypeComb... Видимо с Hashtable не разобрался я ...
Добавлено @ 16:02
Похоже тут мне надо сообщить, что нужен список ifList именно от объекта ob( то есть выбранный в DevTypeComb) в

Код

ifList = currentDev.getAllIfTypesList();


??


--------------------
rm -rf /bin/laden
PM MAIL WWW   Вверх
DarkDS
Дата 14.12.2004, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 4
Всего: 16



while( it.hasNext() ) заменяет иф.

Да. Этод код добаляет все, что есть в ifList (ifList = currentDev.getAllIfTypesList();)
Ты объясни, что ты добится хочешь?
PM MAIL   Вверх
XClan
Дата 15.12.2004, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 14.10.2003
Где: Планета Сириус

Репутация: нет
Всего: 3



То есть имею общий список currentDev.getAllIfTypesList()..
Имею объект Object ob = DevTypeComb.getSelectedItem();
Чтобы выбрать все из списка вроде бы должно быть currentDev.getAllIfTypesList().get(ob);
Но как это сделать чтобы ifList имел список который относится именно к get(ob); А то из getAllIfTypesList() получаю весь список...

При попытке сделать
Код

Object ob = DevTypeComb.getSelectedItem();
ifList=currentDev.getAllIfTypesList().get(ob);


Результат:
Код

[1 761:1] incompatible types
found   : java.lang.Object
required: java.util.Hashtable
           ifList=currentDev.getAllIfTypesList().get(ob);


Thanks!

Это сообщение отредактировал(а) XClan - 15.12.2004, 10:20


--------------------
rm -rf /bin/laden
PM MAIL WWW   Вверх
DarkDS
Дата 15.12.2004, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 4
Всего: 16



getAllIfTypesList - содержит в себе списки?
PM MAIL   Вверх
XClan
Дата 15.12.2004, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 14.10.2003
Где: Планета Сириус

Репутация: нет
Всего: 3



Да


--------------------
rm -rf /bin/laden
PM MAIL WWW   Вверх
igon
Дата 15.12.2004, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 30.10.2004

Репутация: 7
Всего: 21



По приведенным фрагментам исходников об общей идее можно только догадываться, тем не менее похоже, что нужно реализовать что-то вроде "списка списков"
В этом случае нет необходимости хранить дочерние списки в общем списке и каждый раз их оттуда извлекать. Достаточно для каждой "дочки" завести свою структуру типа "список" (String[], HashTable, ArrayList или др.).
Родительский список формируем в виде, например, HashTable, где ключами являются имена "дочек" (и именно их мы показываем в DevTypeComb), а значениями - индексы (0,1.2...)

Тогда (псевдокод)
Код

HashTable parent; // уже заполненная
int index;
ob = DevTypeComb.getSelectedItem;
index = parent.get(ob);
if index = 0
 заполняем CatCobmo значениями из дочернего списка с именем, скажем, "List0"
if index = 1
 заполняем CatCobmo значениями из дочернего списка с именем, скажем, "List1"
... и т.д.
При желании "дочек" можно объединить в двумерный массив и заполнять CatCobmo просто из подмассива с индексом index.
Всё... smile


--------------------
Хотите поговорить об этом?
PM   Вверх
DarkDS
Дата 15.12.2004, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 4
Всего: 16



Тогда нужно приведение типов:
ifList=(Hashtable)currentDev.getAllIfTypesList().get(ob);
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0670 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.