| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: GUI и Java FX приложения > Условно-рекурсивный метод |
| Автор: Platon 1.11.2008, 15:03 | ||||
| Здравствуйте, уважаемые. Я написал работающий код, который мне, в принципе нравится. Но, возможно, есть подвох.
В этом коде обратите внимание на 2 строчки.
Фактически, я надеюсь на то, что в этих кнопках при установке одного и того же значения никакие ChangeListener'ы больше вызваны не будут. Могу ли я на 100% положиться на компоненты Swing, или стоит обезопасить себя? |
| Автор: Keyo 1.11.2008, 21:58 | ||||
Не лучше ли
|
| Автор: ivg 1.11.2008, 22:51 | ||
Keyo, ну тогда уж лучше
|
| Автор: Keyo 1.11.2008, 23:06 |
| ivg, ну тогда уж, плюс к этому, лучше строки вынести в поля класса, как статик файнал, зачем плодить объекты |
| Автор: dorogoyIV 1.11.2008, 23:20 |
| Keyo, ivg, |
| Автор: Platon 2.11.2008, 08:22 |
| dorogoyIV, уважаемый, я что-то вообще ничего не понял... Я не про противоположность имею ввиду. Распишу подробней. К примеру 0. у нас состояние двух кнопок false. 1. теперь на easyUpload ткнули, при переходе к методу showLoadPanel передается флажек true 2. в методе showLoadPanel вызывается опять же easyUpload.setSelected(show), который будет терминальной веткой, и выходит из метода easyUpload.setSelected(show) 3. в методе showLoadPanel вызывается hardUpload.setSelected(show), который обязательно вызовет все свои ChangeListener'ы, в том числе и мой привязанный, который вызывает опять же showLoadPanel с флажком true. 4. опять входим в showLoadPanel там обе строчки - терминальные ветки. 5. устанавливаем наш до невозможности оптимизированный код (за него отдельное спасибо), выходим 6. устанавливаем наш до невозможности оптимизированный код (за него отдельное спасибо), выходим Единственный маленький недочет - вызываем часть кода дважды (пункты 5,6). |
| Автор: dorogoyIV 2.11.2008, 09:02 |
| Platon, сдается мне - вы сами запутались в своих методах к чему все эти сложности? у булевой переменной всего два значения - true/false , отсюда делаем выводы... я кажется недопонимаю чего то. ну давайте разберемся вместе - кидайте маленький упрощенный вариант кода, что бы можно было запустить |
| Автор: Platon 2.11.2008, 10:56 | ||
| dorogoyIV, showLoadPanel - своего рода Mediator, можно не только кликнуть по одной из двух кнопок, но и напрямую вызывать этот метод с установкой соответствующего флажка. Через минуту приведу код. Добавлено через 14 минут и 55 секунд
|
| Автор: dorogoyIV 2.11.2008, 14:29 | ||||
можно ведь отменить ActionListener
кажется у вас логика построена по индусски... (это предположение - не вижу кода - не знаю) |
| Автор: Platon 2.11.2008, 14:48 | ||
не по-индусски ли это? Код есть ;) обновите тему. На самом деле тут можно выделить полноценный класс SwitchMediator и сделать:
|
| Автор: dorogoyIV 2.11.2008, 15:03 |
| Platon, на самом деле я вам доверяю, (шахматы!!!) , но кажется в этом месте вы затупили!!! или я туплю |
| Автор: Platon 2.11.2008, 16:00 |
| Да, в нашей беседе явно не хватает третьего адекватного лица. Добавлено через 5 минут и 33 секунды не то что бы затупил, но подход поддозрительный, поэтому выставил вопрос на публику. |
| Автор: dorogoyIV 3.11.2008, 02:31 |
я делаю так: |
| Автор: Platon 3.11.2008, 08:45 |
| Пожалуй, вы правы. |