Java NetBeans авторазмера текстовой области - PullRequest
3 голосов
/ 29 августа 2011

Я использую NetBeans 7.0.1 для создания простого приложения JFrame

Я использую текстовую область и пару кнопок при использовании GUI Builder

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

Для жизния не вижу, как это делается - я осмотрелся и могу найти код для приложения, написанного вручную, но не для netbeans gui builder

Ответы [ 2 ]

2 голосов
/ 29 августа 2011

Обновление: Ах, извините, не прочитал полный вопрос, вы действительно хотите сделать это с NetBeans .. :) Ну, хорошо, теперь у вас есть этот пост, как это сделать вручную!:)

Я бы не использовал GUI Builder для этой задачи.Создать такой макет легко с помощью FlowLayout и BorderLayout:

screenshot

Снимок экрана был получен с помощью этого кода:

public static void main(String... args) throws Exception {
    JFrame frame = new JFrame("Test");

    JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
    buttonPanel.add(new JButton("Hello"));
    buttonPanel.add(new JButton("World!"));

    frame.add(buttonPanel, BorderLayout.NORTH);
    frame.add(new JTextArea("Hello World!"), BorderLayout.CENTER);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(600, 400);
    frame.setVisible(true);
}
1 голос
/ 29 августа 2011

Это все о макете, который вы используете.Я бы лично использовал GridBagLayout, вероятно, потому что я к этому привык.По сути, вы должны выполнить следующие действия:

  1. Изменить макет контейнера, которому принадлежит текстовое поле, на GridBagLayout.Вы можете сделать это, щелкнув правой кнопкой мыши на контейнере (будь то JFrame, панель, что угодно), и там вы увидите меню Layout.Он содержит параметр GridBagLayout.
  2. В инспекторе компонентов выберите JScrollPane, которому принадлежит JTextArea.Проверьте раздел «Макет» на вкладке свойств.Он содержит GridBagConstraints, которые управляют поведением макета JScrollPane и, таким образом, командами JTextArea.
  3. Воспроизвести со свойствами макета :)В основном вы должны установить вес X и Y равным 1, а Fill - «Оба».Это скажет JScrollPane заполнить любое вертикальное и горизонтальное пространство, имеющееся в кадре, а вес X и Y вытянет любые другие компоненты настолько далеко, насколько это возможно.: http://netbeans.org/kb/docs/java/gbcustomizer-basic.html

    Обучение GridBagLayout может занять пару часов, привыкание к нему может занять пару дней, но его стоит изучить.Просто мои 2 цента.

...