【问题标题】:JPanel PositioningJPanel 定位
【发布时间】:2013-10-19 03:38:55
【问题描述】:

为什么我的小地图面板不在 JFrame 的右侧?

我的代码似乎是正确的,但我一定是犯了一个愚蠢的错误。请帮帮我:)

    private static void loadResources() {
    minimap.setMaximumSize(new Dimension(minimapWidth, minimapHeight));
    minimap.setMinimumSize(new Dimension(minimapWidth, minimapHeight));
    minimap.setPreferredSize(new Dimension(minimapWidth, minimapHeight));

    panel.setMaximumSize(new Dimension(width, height));
    panel.setMinimumSize(new Dimension(width, height));
    panel.setPreferredSize(new Dimension(width, height));

    minimap.setBackground(Color.red);
    panel.setBackground(Color.GRAY);

    panel.setLayout(new FlowLayout(FlowLayout.CENTER));
    panel.add(minimap);
    minimap.setLayout(new FlowLayout(FlowLayout.RIGHT));

    Character.createCharacter();
    frame.add(panel);
}

【问题讨论】:

  • 了解有关 LayoutManagers 的所有信息,最好从此处的 swing tag wiki 中引用的在线教程开始。顺便说一句:don't use setXXSize, everstackoverflow.com/a/7229519/203657
  • 1) 为了尽快获得更好的帮助,请发帖 SSCCE。 2) 提供 GUI 的 ASCII 艺术,因为它应该以最小尺寸出现,并且(如果可调整大小)具有额外的宽度/高度。

标签: java swing jpanel positioning layout-manager


【解决方案1】:

您将面板布局设置为 CENTER。然后你添加小地图,所以小地图也居中。

通过调用

minimap.setLayout(new FlowLayout(FlowLayout.RIGHT));

您只是说小地图内的所有元素(在这种情况下没有)应相对于小地图矩形定位在右侧。因此,如果您向小地图添加一个元素,比如说一个灰色矩形,您应该会看到 JFrame 中心的红色矩形和红色矩形内右侧的灰色矩形。

你可以试试

panel.setLayout(new FlowLayout(FlowLayout.RIGHT));

但这可能会改变其他元素的位置。

【讨论】:

    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多