Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > [swing] сделать окно неизменяемого размера


Автор: kosmonaFFFt 15.7.2009, 17:19
Собственно сабж, это вообще реально?

Автор: Connie 15.7.2009, 17:48
kosmonaFFFt, setResizable(false) не работает разве?

Автор: Данкинг 15.7.2009, 17:50
Код

JFrame forma=new JFrame("Крутая прога"); 
...
forma.setResizable(false); 

 smile 

Автор: kosmonaFFFt 16.7.2009, 15:40
У мну наследник класса FrameView:

Код

/**
 * The application's main frame.
 */
public class PracticsView extends FrameView {

    public PracticsView(SingleFrameApplication app) {
        super(app);
        initComponents();
    }
...

На котором есть JPanel...

Ни в одном из этих классов нету метода setResizable...

З.Ы. Юзаю дефолтное ГУИ приложение из NetBeans, ГУИ код генерится автоматом...

Автор: COVD 16.7.2009, 17:33
если нет SetResizable, значит есть setMaximumSize(),  setMinimumSize(),  setPrefferedSize(). Если указать везде один размер, то LayoutManager не сможет менять размер компонента. Эти параметры в Нетбинсе редактируются в свойствах компонента (в дизайнере).

Автор: kosmonaFFFt 17.7.2009, 12:08
Спс, щас попробую... Насколько я понял - PreferredSize выставляется нетбинсом при ресайзе формы в дизайнере?

Автор: Connie 18.7.2009, 21:55
Цитата
Спс, щас попробую... Насколько я понял - PreferredSize выставляется нетбинсом при ресайзе формы в дизайнере? 

Кашмар какой smile всего то три строчки руками набить )))))))))))
Код

practicsViewIstance.setMaximumSize(new Dimension(50,50));
practicsViewIstance.setMinimumSize(new Dimension(50,50));
practicsViewIstance.setPrefferedSize(new Dimension(50,50));


Автор: kosmonaFFFt 19.7.2009, 20:14
Во первых лень подбирать размеры и набирать код...
Во вторых не помогло - окно как ресайзилось, так и ресайзится...
Вместо этого нашел как создать нормально редактируемую форму
как наследника JFrame и поставить setResizable(false)... smile
Всем спасибо за помощь...

Автор: serghd 19.10.2009, 21:17
Цитата(kosmonaFFFt @ 19.7.2009,  20:14)
Во первых лень подбирать размеры и набирать код...
Во вторых не помогло - окно как ресайзилось, так и ресайзится...
Вместо этого нашел как создать нормально редактируемую форму
как наследника JFrame и поставить setResizable(false)... smile
Всем спасибо за помощь...

Ну и как почему не отписался?
У меня тоже всё лежит в JFrame и setResizable(false) прописан, но resize как делался, так и делается. Сдаётся мне, что это всё-таки нереально.

Автор: Sibit 20.10.2009, 05:45

По умолчанию NetBeans создает класс FrameView, у которого есть метод getFrame(). Можно из конструктора вызвать следующее

Код

this.getFrame().setResizable(false);


а не получается из гуя запретить изменение скорей всего потому, что вы указываете это свойство для панели которая создается по умолчанию.

Автор: serghd 20.10.2009, 11:10
Sibit, спасибо большое, так и есть - работает.

Автор: COVD 20.10.2009, 15:31
Цитата

Сдаётся мне, что это всё-таки нереально.


Код

    public static void main(String[] args) {
        JFrame f = new JFrame("TEST");
        f.setSize(300, 300);
        f.setResizable(false);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }

Автор: kosmonaFFFt 20.10.2009, 19:47
Цитата(COVD @ 20.10.2009,  15:31)
Цитата

Сдаётся мне, что это всё-таки нереально.


Код

    public static void main(String[] args) {
        JFrame f = new JFrame("TEST");
        f.setSize(300, 300);
        f.setResizable(false);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }

Дык это код ручками написанный, а требовалось, чтобы его можно было накидать в редакторе форм...

Автор: AxNe0 20.10.2009, 20:01
ну и в чем проблема? накидай в редакторе форм и вставь одну строку ручками.

Автор: COVD 21.10.2009, 07:28
Цитата

Дык это код ручками написанный, а требовалось, чтобы его можно было накидать в редакторе форм... 

  • В окне Projects кликаете правой кнопкой на названии проекта и выбираете пункт меню New.
  • В подменю выбираете пункт JFrame Form ..
  • Открывается диалог, где предлагается название нового фрейма NewJFrame. Жмете Finish. 
  • Диалог закрывается, открывается пустой NewJFrame уже на вкладке Design. У меня также автоматически открывается окно Properties, относящееся к созданной форме.
  • В окне Properties есть свойство resizable (сразу после prefferedSize). Свойство resizable селектировано. Деселектируйте его. Все! 
  • В созданном NewJFrame уже есть метод main. Можно сразу запустить и убедиться, что работает. Для этого в окне Projects кликаете правой кнопкой на NewJFrame и выбираете пункт меню Run File.

Автор: serghd 24.10.2009, 22:52
Цитата(COVD @ 21.10.2009,  07:28)
Цитата

Дык это код ручками написанный, а требовалось, чтобы его можно было накидать в редакторе форм... 


  • В окне Projects кликаете правой кнопкой на названии проекта и выбираете пункт меню New.
  • В подменю выбираете пункт JFrame Form ..
  • Открывается диалог, где предлагается название нового фрейма NewJFrame. Жмете Finish. 
  • Диалог закрывается, открывается пустой NewJFrame уже на вкладке Design. У меня также автоматически открывается окно Properties, относящееся к созданной форме.
  • В окне Properties есть свойство resizable (сразу после prefferedSize). Свойство resizable селектировано. Деселектируйте его. Все! 
  • В созданном NewJFrame уже есть метод main. Можно сразу запустить и убедиться, что работает. Для этого в окне Projects кликаете правой кнопкой на NewJFrame и выбираете пункт меню Run File.

COVD, вы говорите конечно правильно, но изначально вопрос был как бы в связке с дефолтом netbeans. Поэтому в его случае (а он создаёт FrameView) удобно использовать для этих целей getFrame(). Вот и всё...

Автор: kosmonaFFFt 25.10.2009, 19:48
Вот бы еще такую помощь по нерешенным вопросам... smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)