首页 > Java > java教程 > 如何使组件在 JFrame 的内容窗格中居中?

如何使组件在 JFrame 的内容窗格中居中?

Linda Hamilton
发布: 2024-12-04 09:50:10
原创
945 人浏览过

How Do I Center a Component within a JFrame's Content Pane?

如何在 JFrame 中正确居中组件?

尝试在 JFrame 中绘制矩形时,设置框架大小、可调整大小属性以及矩形的坐标可能不会导致矩形在框架内居中。

这种差异的根本原因在于框架的装饰,例如边框和标题栏。这些装饰占据框架内的空间,影响矩形的位置。

为了确保正确居中,至关重要的是在框架的内容区域上绘制,而不是直接在框架上绘制。内容区域本质上是框架的内部部分,不包括装饰。

示例代码:

public class CenteredRectangle {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException |
                        IllegalAccessException | UnsupportedLookAndFeelException ex) {
                }

                // Create a JFrame with a content pane
                JFrame frame = new JFrame();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.getContentPane().setPreferredSize(new Dimension(800, 400));
                frame.pack();

                // Create a component to be centered
                JPanel panel = new JPanel();
                panel.setBackground(Color.RED);
                panel.setPreferredSize(new Dimension(700, 300));

                // Add the component to the content pane
                frame.getContentPane().add(panel);
                frame.validate();

                // Position the frame at the center of the screen
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }
}
登录后复制

在此示例中,设置了 JFrame 的内容区域首选大小为 800x400,而要居中的组件 JPanel 则设置为首选大小700x300。通过在内容窗格上使用 validate() 方法,计算并应用组件的实际大小和位置。

现在,组件应该在 JFrame 中正确地水平和垂直居中。

以上是如何使组件在 JFrame 的内容窗格中居中?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板