2011-08-29 2 views
3

Я использую NetBeans 7.0.1 для сборки простого приложения JFrameJava NetBeans AUTORESIZE TextArea

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

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

Для жизни меня я не могу видеть, как это делается - я посмотрел вокруг, и я могу найти код для ручной закодированы приложения, но не для Netbeans GUI Builder

ответ

1

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

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

Вы можете прочитать больше о GridBagLayout здесь: http://netbeans.org/kb/docs/java/gbcustomizer-basic.html

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

+0

Спасибо за это, теперь я нашел редактора и с удовольствием использую его - просто застрял на привязке по вертикали .... –

2

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

Я бы не использовал GUI-конструктор для этой задачи. Легко создать такую ​​компоновку с 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); 
}