java - 在框架上为 Jpanel 分配空间

标签 java swing jpanel layout-manager

我有一个 JFrame,我需要在其中添加 2 个不同大小的不同 JPanel。我正在使用 BorderLayout。我设置了框架,以便有足够的空间让两个面板(尺寸已经设置)完美契合。然而,当它运行时,右侧的第二个面板会一直被压到一边,所以它真的很薄。

public class YourCraft extends JFrame {

public Game() {

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(606, 500);

    setTitle("YourCraft");
    setResizable(false);
    setVisible(true);
    setBackground(Color.BLACK);
}

public static void main(String[] args) {
    Game main = new Game();

    Board mainBoard = new Board();
    Stats mainStats = new Stats();
    main.getContentPane().add(BorderLayout.CENTER,mainBoard);
    main.getContentPane().add(BorderLayout.EAST,mainStats);
}

最佳答案

为您的组件指定首选尺寸。使用 setPreferredSize 为它们指定尺寸。

然后,在 JFrame 上调用 setVisible( true ) 之前,使用方法 pack()。它将打包 JFrame 并提供足够的空间以确保尊重每个组件的首选大小(如果可能)。

问候, 史蒂芬

关于java - 在框架上为 Jpanel 分配空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6325167/

相关文章:

java - JPanel 组件放置

java - 在 thymeleaf 中调用函数时将模型值作为字符串类型包含在内

java - Swing 和 iText 字体渲染之间的差异

java - 对 JTable 进行排序后无法获取正确的行 (Swing)

java - 要在 java 中设置按钮点击延迟?

Java 拖动绘制的球

java - 创建 MutableGuiceKeyToInstanceMap 的最简单方法?

java - 如何在 Spring 中池化对象?

java - 如何整合 java.util.logging、System.(out|err) 和 Jetty 日志记录?

java - JPanel 中的多个组件未显示