Ответ 1
Вы не нарушаете ничего, если вы его сначала назовете, но вам, вероятно, потребуется снова позвонить, если вы что-то добавили. Else Swing не будет добавлять дополнительные компоненты. Вам нужно, чтобы JVM вызывал метод JFrame paint(...)
для отображения компонентов JFrame, а setVisible(true)
попросил JVM сделать именно это. Если вы когда-либо добавляли компоненты после вызова setVisible (true) и не видите компоненты, вы обнаружите, что они "материализуются", если вы измените размер JFrame. Это связано с тем, что повторная калибровка заставит операционную систему попросить Swing перерисовать GUI, и это приведет к вызову paint(...)
.
Обратите внимание: если вы добавите компонент после создания своего графического интерфейса, вы можете вызвать revalidate()
и часто repaint()
в своем контейнере, чтобы получить новый компонент, который был правильно выложен, а затем отображен. repaint()
определенно будет необходимо, если изменение компонентов связано с удалением или компонент, нарисованный, где ранее был визуализирован другой компонент.
Рекомендация книги о том, что я высоко рекомендую: Filthy Rich Клиенты покупают Guy и Haase. Просто купите! Вы не пожалеете о покупке.