Как максимизировать, так и предотвратить изменение размера JFrame?

Я создаю игру, поэтому я хочу, чтобы JFrame был развернут, но я также не хочу, чтобы пользователи меняли размер игры, так как это испортит графику. Мне интересно, как сделать и то, и другое одновременно?

Прямо сейчас я могу использовать JFrame.setExtendedState (JFrame.MAXIMIZED_BOTH) для максимизации, но как только я сделаю JFrame.setResizeable (false), я больше не смогу использовать setExtendedState (), чтобы максимизировать его.

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


person Community    schedule 16.01.2011    source источник


Ответы (2)


Это работает для меня:

frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
frame.setResizable(false);
person camickr    schedule 16.01.2011
comment
Спасибо, сработало! Раньше у меня был setVisible () в setResizeable (), и он не удался, хотя я понятия не имею, почему они могут мешать друг другу. - person ; 16.01.2011

Если вы используете JSR296, это работает внутри класса singleton Application:

    JFrame main = view.getFrame();
    main.setExtendedState(JFrame.MAXIMIZED_BOTH);
    main.pack();
    show(view);
    main.setResizable(false);

Без операции pack () окно не разворачивается. Это было протестировано с использованием Linux и Java 6.

person gersonZaragocin    schedule 14.07.2011