java - 如何在调整框架大小时自动居中 JFrame 中使用的组件?

标签 java swing jframe layout-manager jcomponent

我希望我的小部件位于 JFrame 的中心无论其大小如何(意味着框架尺寸较小或较大的组件应位于框架的中心)。

如何在调整框架大小时动态地将组件设置在中心?

最佳答案

So please tell me how to set the widgets at center dynamically on resizing frame in java

  • Swing 有 JPanel不是小部件

i want my widgets to be at the center of the jframe regardless of its size(means either jframe size is small or larger widgets should be at center of the frame).

.

enter image description here

.

enter image description here

.

enter image description here

.

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class JFrameAndBorderLayout {

    private JFrame frame = new JFrame("JFrame and BorderLayout");
    private JPanel panelWest = new JPanel();
    private JPanel panelEast = new JPanel();
    private JPanel panelNorth = new JPanel();
    private JPanel panelSouth = new JPanel();
    private JPanel panelCenter = new JPanel() {
        @Override
        public Dimension getPreferredSize() {
            return new Dimension(400, 300);
        }

    };

    public JFrameAndBorderLayout() {
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(panelWest, BorderLayout.WEST);
        frame.add(panelEast, BorderLayout.EAST);
        frame.add(panelNorth, BorderLayout.NORTH);
        frame.add(panelSouth, BorderLayout.SOUTH);
        panelCenter.setBackground(Color.RED);
        frame.add(panelCenter);
        frame.pack();
        frame.setLocation(150, 150);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrameAndBorderLayout fs = new JFrameAndBorderLayout();
            }
        });
    }
}

关于java - 如何在调整框架大小时自动居中 JFrame 中使用的组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30693877/

相关文章:

Java程序分别计算单词和空格,但该程序显示: Exception in thread "main" java. lang.StringIndexOutOfBoundsException:

java - 将类作为组件加载到java中

java - 将按钮添加到 jtable

java - Java Swing href 的问题

java - 如何将面板发送到内部框架的背面?

java - 使用库运行测试任务,但使用 Junit 的 gradle 中不存在包

java - KMS使用Boto3加密文件数据

java - Swing 事件线程 Java

Java:如何使用具有多个类的持卡人

java - ConcurrentModificationException - HashMap