小编IT.*_*IT.的帖子

如何在JFrame中正确居中JPanel(FIXED SIZE)?

大家好!我正在尝试解决一个很明显的问题,但我无法解决它.我正在使用Java/Swing库开发示例应用程序; 我有一个JFrame和一个JPanel.我只想达到以下目标:

  1. JPanel 必须在JFrame内部居中.

  2. 的JPanel 必须ALWAYS一个与指定的大小
    有必要对setPreferredSize()方法.它不能在这个尺寸下调整大小.

我尝试使用GridBagLayout:这是我能做到的唯一方式.

请参阅以下示例:

/* file StackSample01.java */

import java.awt.*;
import javax.swing.*;

public class StackSample01 {
    public static void main(String [] args) {

        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        panel.setPreferredSize(new Dimension(100, 100));
        panel.setBackground(Color.RED);  

        frame.setLayout(new GridBagLayout());
        frame.add(panel, new GridBagConstraints());
        frame.setSize(new Dimension(200, 200));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

    }
}
Run Code Online (Sandbox Code Playgroud)

是一个截图:

我不会使用GridBagLayout做一件太简单的事情.我尝试了一个最简单的解决方案,使用Box,但这不起作用:

示例代码:

/* file StackSample02.java */

import java.awt.*;
import javax.swing.*;

public class StackSample02 {
    public static void main(String …
Run Code Online (Sandbox Code Playgroud)

java swing gridbaglayout

16
推荐指数
2
解决办法
5万
查看次数

标签 统计

gridbaglayout ×1

java ×1

swing ×1