Два предложения:
1) положить общие вещи в блок инициализации экземпляра. Лично я содрогаюсь всякий раз, когда вижу вызов "this ()".
{
this.setDefaultCloseOperation (WindowConstants.EXIT_ON_CLOSE);
}
ControlFrame ()
{
супер («Контрольная рамка»);
}
ControlFrame (int x, int y, int w, int h)
{
супер («Контрольная рамка»);
...
}
2) Я бы избавился от конструктора x, y, w, h ... лично у меня есть класс WindowUtils, у которого есть метод "position", который вычисляет размер экрана и затем использует значения, переданные в создайте окно, которое является относительным размером экрана. Тогда код, который создает окно, вызывает это. Я предпочитаю иметь как можно меньше конструкторов (очень часто это ноль или один, у меня почти никогда не бывает двух или более).
3) this.getContentPane (). Add (jb_inc); теперь можно записать как add (jb_inc); - начиная с JDK 1.5, я думаю.
4) никогда не вызывайте переопределяемые методы (все, что у вас было раньше) внутри конструктора. Если подкласс переопределит «добавить», вы можете увидеть, что все сломается. Таким образом, вы можете вызвать super.add (), или добавить в другой метод, или сделать ваш класс окончательным.
Теперь, чтобы ответить на ваш вопрос ...: -)
Вам нужно использовать LayoutManagers , чтобы получить то, что вы хотите.
В зависимости от того, что вы хотите, вы, вероятно, захотите использовать BorderLayout, чтобы вы могли получить кнопку внизу.