java - 该应用程序不会调整其组件的大小

标签 java swing layout-manager

我有这个应用程序,但是,当我调整窗口大小时,里面的元素 JTextArea 不会随窗口调整大小。为什么?

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class ExampleGUI {

private JTextArea text_area;
private JScrollPane scroll_bar;

private JFrame frame;
private JPanel panel;

public ExampleGUI(){

    frame = new JFrame("Example GUI");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    text_area = new JTextArea();
    scroll_bar = new JScrollPane(text_area);

    panel = new JPanel();
    panel.add(scroll_bar);

    frame.add(panel);

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

public static void main(String[] args) {

    SwingUtilities.invokeLater(new Runnable(){public void run(){new ExampleGUI();}});
}
}

最佳答案

您需要将 GridBagConstraint x 和 y 权重(weightx 和 weighty —— GridBagConstraint 构造函数中的第 5 个和第 6 个参数)设置为 0.0 以外的正值。如果您要使用它,您应该阅读有关 GridBagLayout 的教程,因为它相当复杂。有些人在嵌套更简单的布局或使用第 3 方布局(例如 MigLayout)方面取得了巨大成功。 .

关于java - 该应用程序不会调整其组件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8779085/

相关文章:

java - 无法将 TextField 添加到 Java 中的界面

java - 如何在 android 中创建具有不同内容类型和布局的 cardview?

java - Android 4 上的默认浏览器来自哪里?

java - 无损图像旋转

java - jmathplot - 旋转轴标签未对齐线图

java - 打印时 JTable 显示为框

java - MouseWheelListener java- 可以检测到框架外吗?

java - Façade - 接受对象实例,还是单独的参数?

java - 解耦 CardLayout 面板

java - java Swing 中的布局指定大小