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

时间:2015-06-07 13:05:30

标签: java swing jframe layout-manager jcomponent

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

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

1 个答案:

答案 0 :(得分:2)

  

所以请告诉我如何在中心动态设置小部件   调整java中的框架

  

我希望我的小部件位于jframe的中心,而不管它是什么   size(表示jframe大小小或大的小部件应该是   框架的中心)。

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();
            }
        });
    }
}