Если вы хотите простое решение, вы можете использовать менеджер раскладки, как описано здесь .
Или, если вы хотите избежать менеджера компоновки (как я), тогда ваша программа может изменять размеры элементов каждый раз, когда происходит событие изменения размера.
Вот некоторый sudo-код
frameOrPanel.addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent componentEvent) {
element.setLocation(frameOrPanel.getWidth()*1/4, frameOrPanel.getHeight*1/4);
element.setSize(frameOrPanel.getWidth()*1/2, frameOrPanel.getHeight()*1/2);
}
});
Вам нужно будет добавить нереализованные методы.
Примечание: 1/4 и 1/2 - это просто соотношение, которое вы можете изменить в соответствии с вашим приложением.