2010-03-19 4 views
1

Я делаю настольное приложение с помощью Netbeans 6.8. То, что я хотел бы сделать, - это программно установить размер моего приложения, чтобы он заполнил весь экран. Я осмотрелся, и это кажется довольно неприятной проблемой. Я пробовал код here, но он, похоже, не работает.Установить размер FrameView программно

У кого-нибудь есть идеи, как я могу это решить?

ответ

4

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

super(app); 
    JFrame frame = new JFrame(); 
    frame.pack(); 
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 
    frame.setResizable(false); 
    this.setFrame(frame); 
    initComponents(); 

я в основном создал другой JFrame и установить его в качестве JFrame в FrameView перед тем метод initComponents.

1

Если вы используете JFrame, то попробуйте позвонить:

setExtendedState(Frame.MAXIMIZED_BOTH); 

на фоторамке.

+0

Отсутствие удачи. Я назвал его в конструкторе FrameView, до и после метода initComponents. Я также пытался вызвать .repaint(), .validate() и .validate(), но он тоже не работал. – npinti

+3

Вы можете установить расширенное состояние до того, как будет видна рамка. Если кадр НЕ максимизирован, то из-за того, что код рабочего приложения вызывает frame.pack() или frame.setSize (...) после вызова метода setExtendedState(). Поэтому найдите исходный код, чтобы узнать, где это делается, а затем запустите код после этого. Это проблема с Framework приложения, а не с Swing. – camickr

+0

Я посмотрел на Сгенерированный код и класс, который вызывает FrameView, но я не видел вызова setSize или пакета. Я проверил с помощью функции Navigator и указал конкретный размер. Когда я изменил его, размер кадра изменился только тогда, когда он был в Дизайнере, когда я запустил приложение, FrameView сохранил тот же размер. Я буду продолжать беспорядок и постараюсь держать вас в курсе. – npinti

2

В FrameView есть компонент JFrame, поэтому вы не должны воссоздавать JFrame.

super(app); 

initComponents(); 

getFrame().setExtendedState(JFrame.MAXIMIZED_BOTH); 
getFrame().setResizable(false); 
Смежные вопросы