| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: GUI и Java FX приложения > потомки второго уровня от JFrame не работают? |
| Автор: slava_f 4.5.2008, 19:16 |
| возможно ли как-то решить такую проблему?: есть несколько окон, которые практически идентичны, но каждое содержит таблицу с разным числом строк и разными данными... я сделал Frame0 (потомка JFrame с общими методами для всех), а также несколько разных классов Frame1, 2 и др. (потомки Frame0), но так не работает! т.е. как я понял, потомки второго уровня от JFrame уже не работают... по крайней мере при обработке событий из-за этого постоянно ошибки что посоветуете? |
| Автор: v2v 4.5.2008, 19:35 |
уточнить что не получается сделать и какие ошибки. |
| Автор: niasilil 4.5.2008, 19:42 |
| Я очень сильно удивлюсь если это так с потомками второго уровня. |
| Автор: slava_f 5.5.2008, 10:29 | ||
слелал окошки прямыми потоомками JFrame, все работает!!! просто получается дублирование одиних и тех же элеметнов и их функций... придется так Добавлено @ 10:30 можно ли эти "одинаковости" без наследования как-то включить в классы?! |
| Автор: ivg 5.5.2008, 13:43 |
| slava_f, проблема не в наследовании. Показывайте код, а иначе никто вам помочь не сможет. |
| Автор: niasilil 5.5.2008, 23:52 | ||||
Действительно, сложно гадать. По большому счету, наследование ради code reuse не очень хорошо делать, это один из так называемых bad smells. |
| Автор: Vurn 8.5.2008, 05:29 | ||
| Шизануться. А не проще было создать 1 (один) класс, который от переданных параметров конструктору сам себя настраивал на "таблицу с разным числом строк и разными данными..."? Запомните простое правило, которое не раз поможет в будущем - класс наследуется ровно в двух случаях а) надо исправить поведение родителя б) и/или при этом надо уметь передавать его по родительским ссылкам. Во всех остальных случаях надо использовать аггрегатирование. Frame0 переписывает поведение родителя? Нет. Frame0 надо передавать в методы по родительским ссылкам? Нет. Значит он не должен наследоваться от JFrame. А должен иметь внутри ссылку на JFrame. По типу такого:
|