2013-03-08 4 views
2

Может кто-нибудь объяснить мне Почему FileDialog использует два конструктора, один для Frame и один для Dialog? Я имею в виду, почему они не использовали благословения наследования и просто создали конструктор, используя Window? Я спрашиваю об этом, потому что иногда, когда вам нужно запрашивать файл с помощью графического интерфейса, вы можете запросить файл с Frame или с Dialog, и было бы хорошо, если бы вам не пришлось беспокоиться о создании вашего метода «запросчика» для Frame, а также для Dialog, я взглянул на исходный код FileDialog, и нет никакой разницы (что я мог бы оценить) между конструкторами, поскольку они используют только Frame и Dialog, чтобы установить их как parentComponent ...Ненужный конструктор в FileDialog?

ответ

2

Эти конструкции были созданы в разное время в истории. Существует сильная, насильственная потребность в обратной совместимости.

// @since 1.5 
public FileDialog(Dialog parent) 

// @since JDK1.1 
public FileDialog(Frame parent) 
+0

аааа, так что есть причина ... интересно, couldn't они также добавить конструктор для окна ¬.¬, мне нужно один из них: (... спасибо за ответ:) ... – Ordiel

+0

@Ordiel - Создайте новый вопрос, касающийся этой потребности. Но я думаю, что ответ будет FileDialog fd = new FileDialog (Frame (null)); (или новый FileDialog (новый фрейм())) - оба приводят к появлению модального диалога приложения (в моем быстром тесте). Но лучше поставить новый вопрос, чтобы посмотреть, что думают другие. – Java42