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

问题描述 投票:0回答:1

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

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

enter image description here

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

enter image description here

java swing layout-manager grid-layout
1个回答
1
投票

以下是使用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

© www.soinside.com 2019 - 2024. All rights reserved.