Java Component.show()/hide() устарели, почему?

Кто-нибудь знает причину, по которой эти методы свинга Java устарели:

Component.show(); 
Component.hide();

person user43685    schedule 11.03.2009    source источник


Ответы (5)


JDK 1.1 представил Java Beans. Java Beans полагаются на размышления и самоанализ, чтобы определить, каковы свойства Bean (Bean - это "компонент"). Затем свойства отображаются на странице свойств.

По умолчанию bean-компоненты используют следующий формат:

boolean isXXX()
<type> getXXX()
void setXXX(<type>)

(исходя из памяти на следующих двух... они для индексированных свойств)

<type> getXXX(int)
void setXXX(<type>, int)

Вы можете переопределить значения по умолчанию, но вместо этого большинство вещей просто полагаются на шаблон именования.

Так что show/hide не соответствовало шаблону именования и было заменено на setVisible(boolean), что соответствовало.

person TofuBeer    schedule 12.03.2009
comment
Что ж, это правда, но что мешает бину иметь метод с чертовски хорошим именем? - person user43685; 12.03.2009
comment
Я подумал, что это может быть связано с тем, что методы show и hide не отправляют PropertyChangeEvents, но и setVisible этого не делает.... - person user43685; 12.03.2009
comment
Немного опоздал на вечеринку, но у меня был тот же вопрос, что и у ТС. Хотя я думаю, что @TofuBeer верен, еще одно преимущество setXX заключается в том, что вы можете напрямую передать логическое значение в setVisible, вместо того, чтобы вызывать show() или hide() в блоке if-then. - person pauluss86; 27.06.2013

Скорее всего, потому что они не соответствуют стандартной схеме именования get/set (они скажем, "Начиная с JDK версии 1.1, заменено на setVisible(boolean)").

person Michael Myers    schedule 11.03.2009

Начиная с JDK версии 1.1, заменено на Component.setVisible(boolean).

person n00ki3    schedule 11.03.2009

Вы можете использовать альтернативу: someUseFrame.setVisible(true);

person xiaolong    schedule 01.12.2011

Методы скрытия и показа java.awt.Component уже давно объявлены устаревшими.

Правильный способ установить видимость компонента — setVisible(boolean b)

person mainstringargs    schedule 11.03.2009