|
|
|
Почему JComboBox не выбирает нужное мне значение? Потихоньку схожу с ума
|
|||
|---|---|---|---|
|
#18+
Видимо я не вижу какой-то элементарной вещи, но потратил уже целый день и ничего не понимаю. Сам вопрос простой, но чтобы полностью его обрисовать придеться вставить какое-то количество кода. В общем так, у меня есть Панель в которой несколько JComboBox-ов. Привожу все существенные методы: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. Проблема: если я пытаюсь присвоить моему Комбобоксу значения из объекта myGoal, то в результате в этом боксе имею ВСЕГДА выбранное ПЕРВОЕ значения из списка (в котором 4 различных значения), независимо от того, что на самом деле содержит мой объект. Я мог бы с этим жить, если бы с инициализированным перед этим объектом (Goal g1 = new Goal(1)) тоже не срабатывало, так нет-работает нормально. Т.е. выбирает нужное мне значение (в данном случае 2-е из списка) Так как вызов обеих методов (удачного и неудачного jCBActionField.setSelectedItem(ххх)) происходит в одном и том же месте можно подумать, что наверное мой объект myGoal просто неправильно инициализирован или равен нулю. Но это не так, если я его тут же вывожу на экран, таким образом Код: plaintext то вижу, что все нормально, у него одно из 4-х значений. Кто-нибудь, пожалуйста объясните, почему это не работает, мне просто ОЧЕНЬ интересно. Я конечно мог бы это обойти, устанавливая комбобокс с помощью индекса, но уже после потраченного целого дня, просто хочется понять, в чем проблема. Спасибо большое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2006, 00:32 |
|
||
|
Почему JComboBox не выбирает нужное мне значение? Потихоньку схожу с ума
|
|||
|---|---|---|---|
|
#18+
я, во-первых, не увидел myGoal.setActionField(ActionField.CUSTOMERS); во-вторых в формах часто бывает глюк с конструктором предка - из него могут вызывться методы наследника при неинициализированных атрибутах; и для порядка cледует определить ActionField.equals т.к. он используется комбой не думаю, что помог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2006, 02:43 |
|
||
|
Почему JComboBox не выбирает нужное мне значение? Потихоньку схожу с ума
|
|||
|---|---|---|---|
|
#18+
Попробуй определить для ActionField equals() и hashCode() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2006, 06:02 |
|
||
|
Почему JComboBox не выбирает нужное мне значение? Потихоньку схожу с ума
|
|||
|---|---|---|---|
|
#18+
exppя, во-первых, не увидел myGoal.setActionField(ActionField.CUSTOMERS); ну этот аттрибут устанавливается где-то ранее, я сейчас не могу привести код. Но он установлен, как я уже говорил, я вывожу для контроля на экран и видно, что он не пустой. exppво-вторых в формах часто бывает глюк с конструктором предка - из него могут вызывться методы наследника при неинициализированных атрибутах; и для порядка cледует определить ActionField.equals т.к. он используется комбой не думаю, что помог. этот метод у меня уже определен Код: plaintext 1. 2. Для чего может понадобиться hashCode() и как ее определить? Опять таки, допустим я что-то не определил. Но почему пред. строка работает, ведь речь идет об одном и том же классе (только разные объекты конечно)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2006, 19:49 |
|
||
|
Почему JComboBox не выбирает нужное мне значение? Потихоньку схожу с ума
|
|||
|---|---|---|---|
|
#18+
авторну этот аттрибут устанавливается где-то ранее, я сейчас не могу привести код. Но он установлен, как я уже говорил, я вывожу для контроля на экран и видно, что он не пустой. вот это и надо продебужить и найти. а то подозрительно как-то авторpublic boolean equals(ActionField o) { return o.name.equals(this.name); } о па-па-па-па!!! а чегой то у него аргумент такой. ничего вы не определили. перечетайте про правильное переопределение equals (рекомендую Хорстман Корнел). и ориентируйтесь на маркеры вашей IDE (на левой границе окна) (надеюсь у вас не FAR). имел я ввиду конструктор панели (но случай это не ваш). авторДля чего может понадобиться hashCode() и как ее определить? нет. это такой синдром Javabrginner'ов в каждом классе создавать полный набор getter-setterов equals и hashCode. equals нужен, т.к. исп-ся комбой для установления равентства элементов (сам дебужил) помоему всё дело в myGoal. при отладке обратите внимание на callstack ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2006, 08:05 |
|
||
|
Почему JComboBox не выбирает нужное мне значение? Потихоньку схожу с ума
|
|||
|---|---|---|---|
|
#18+
спасибо expp! вся проблема была в equals-методе. я его переопределил таким образом: Код: plaintext 1. 2. 3. 4. и все заработало. Да, я что-то совсем забыл, что параметр должен быть класса Object, в этом основная проблема. Хотя все-таки непонятно, почему же этот комбобокс правильно понимал значение из только что созданного объекта (в примере Goal g1 = new Goal(1)) всем спасибо большое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2006, 15:34 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=720&tid=2148992]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 330ms |

| 0 / 0 |
