Это моя первая попытка работать с Java, поэтому, пожалуйста, не беспокойтесь.
Я просмотрел другие вопросы по JFrame и просто не смог найти рабочего решения.
По какой-то причине я не могу заставить работать setPreferredSize или setSize.
Окно по-прежнему имеет другой размер по умолчанию. setMinimumSize вроде работает нормально. Похоже, что я читал setMaximumSize с прослушиванием.
В конечном итоге я просто пытаюсь установить для окна определенный неизменяемый размер.
public LauncherFrame(@NonNull Launcher launcher) {
super(tr("launcher.title", launcher.getVersion()));
this.launcher = launcher;
instancesModel = new InstanceTableModel(launcher.getInstances());
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
initComponents();
setPreferredSize(new Dimension(900, 600));
setMinimumSize(new Dimension(600, 300));
setResizable(false);
pack();
setLocationRelativeTo(null);
SwingHelper.setFrameIcon(this, Launcher.class, "icon.png");
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
loadInstances();
}
});
}
* ОБНОВИТЬ *
ВАУ ок ... Я идиот !!! Причина, по которой размер не работал, заключалась в том, что размер устанавливался извне в другом названном файле ... Спасибо всем за помощь. Я отметил, какой ответ был бы правильным.




Вы вызываете pack();, который упакует фрейм в другой размер. Просто удалите вызов pack();.
The pack method sizes the frame so that all its contents are at or above their preferred sizes. An alternative to pack is to establish a frame size explicitly by calling setSize or setBounds (which also sets the frame location).
для получения дополнительной информации посмотрите этот пост Что делает .pack ()?
Как бы то ни было, если это все еще не удается, вы можете попробовать использовать setSize()
setPreferredSize(new Dimension(900, 600));
setSize(new Dimension(900, 600));
setMinimumSize(new Dimension(600, 300));
Что делает initComponents? стая казалась очевидной причиной этого.
Обновил свой ответ.
Да, понятия не имею. Может еще кто-нибудь сможет помочь
Спасибо за попытку! Я ценю это!
Я отметил ваш ответ правильным. Смотрите мое обновление. Спасибо вам за помощь!
Вы вызываете метод initComponents() перед тем, как установить размер окна.
Таким образом, вы рисуете все окно и устанавливаете размер после этого, в результате чего установленный вами размер игнорируется.
Я предлагаю передать 2 объекта Измерение методу initComponents; 1 для preferredSize и один для minimumSize.
Затем сначала установите размер и рисовать на экране после этого.
Надеюсь, это помогло.
Было бы здорово, если бы в вашем коде были содержательные комментарии. Это причина, по которой вообще существует комментирование. Может быть, попробуйте launcher.setSize() (или независимо от того, какой у вас фрейм, вы пытаетесь установить размер для) вместо того, чтобы вызывать просто setSize(). ПОМНИТЬ вы должны установить размер, прежде чем рисовать окно или панель, чтобы они были правильно отрисованы
Нет, это тоже не так. Кроме того, оказывается, что initComponents не влияли на это. Я удалил эти участки кода, но окно по-прежнему не принимает заданный размер.
Что ж, если вы хотите, вы можете добавить комментарии к своему коду и опубликовать его здесь, а я посмотрю, что я могу сделать, чтобы помочь.
Постараюсь завтра. Солнце встает, ха-ха. Наверное, нужно лечь спать. Спасибо вам за помощь!
Хм, вроде не изменилось. Я тоже очень надеялся. Это тоже казалось очевидным решением. Возможно, что-то еще мешает размеру. Могу я заставить это?