Java качаем и расширяем окно / текстовое поле - PullRequest
2 голосов
/ 20 февраля 2010

В следующем примере я хочу иметь возможность расширять текстовую область, когда я увеличиваю или уменьшаю окно.Прямо сейчас текстовое поле установлено в столбцы / строки.Если я нажму «Развернуть», текстовая область должна расширяться при расширении окна.

Примечание: это своего рода псевдо-пример.Я могу добавить больше компонентов, поэтому я использовал менеджер GridBagLayout.

Версия ниже дает мне то, что я хочу:

package org.berlin.pino.test.functional.jogl;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class BasicText {

    public static JPanel buildPanel() {

        final JPanel panel = new JPanel(new GridBagLayout());
        final GridBagConstraints gc = new GridBagConstraints();

        final JTextArea text = new JTextArea("Text");
        final JScrollPane scrollPane = new JScrollPane(text); 
        gc.fill = GridBagConstraints.BOTH;
        gc.weightx = 1;
        gc.weighty = 1;        

        // Add the textarea -> scroll pane -> to the panel -> to the jframe                       
        panel.add(scrollPane, gc);        
        return panel;
    }

    public static void main(String[] args) {


        JFrame frame = new JFrame("Hello World!");
        frame.setLayout(new GridBagLayout());
        final GridBagConstraints gc = new GridBagConstraints();
        gc.fill = GridBagConstraints.BOTH;
        gc.weightx = 1;
        gc.weighty = 1;

        frame.add(buildPanel(), gc);
        frame.setPreferredSize(new Dimension(300, 300));
        frame.setLocation(200, 100);
        frame.setBackground(Color.white);               

        frame.pack();
        frame.setVisible(true);
    }

} // End of the class //

1 Ответ

3 голосов
/ 20 февраля 2010

На вашем GridBagConstraints используйте

gc.weightx = 1d;
gc.weighty = 1d;

JavaDoc для weightx / weighty говорит:

Указывает, как распределять дополнительное горизонтальное / вертикальное пространство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...