java - 使用 GridLayout 时如何将组件的大小锁定在可调整大小的框架中?

标签 java swing layout-manager grid-layout

我想要调整框架的大小,但保留 GridLayout 中组件的初始大小。我该怎么做?

初始大小。这是我想要保留的尺寸:

enter image description here

调整框架大小时,组件的大小也会发生变化。我不想要这个:

enter image description here

最佳答案

以下是mcve演示了使用 GridBagLayout 的解决方案 as proposed by MadProgrammer .
问题中包含这样的 mcve 可以让帮助变得更加容易,并且获得好的答案的机会也更高。

import java.awt.GridBagLayout;
import java.awt.GridLayout;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.Border;

public class SwingMain {

    public static void main(String[] args) {

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);
        frame.setLayout(new GridBagLayout()); //place desired content in a GridbagLayout
        frame.add(new TestPane());
        frame.pack();
        frame.setVisible(true);
    }
}

class TestPane extends JPanel{

    TestPane() {

        Border padding = BorderFactory.createEmptyBorder(10, 10, 10, 10);
        setBorder(padding);
        setLayout(new GridLayout(2, 2, 10, 10));
        add(new JLabel("Celsius"));
        add(new JTextField(10));
        add(new JLabel("Fahrenheit"));
        add(new JTextField(10));
    }
}

enter image description here

关于java - 使用 GridLayout 时如何将组件的大小锁定在可调整大小的框架中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55671241/

相关文章:

java - 如何使用 Mockito 模拟构造函数对象属性?

java - 使用空数组创建方法

java - 使用 GridLayout - 如何设置 JPanel 大小?

java - 使用 BoxLayout 时 JPanel 不会调整大小

java - 添加横向 Jpanel

java - 最佳相机对焦模式android java

java - Java 一定要编译成字节码吗?

java - 编写 java 游戏 - JFrame 未按预期工作

java 类无法覆盖组件中的 size() 吗?

java - 放在jpanel中的任何地方