gpt4 book ai didi

java - GroupLayout 未按预期运行

转载 作者:行者123 更新时间:2023-11-30 11:36:05 27 4
gpt4 key购买 nike

我正在尝试创建一个扫雷类型的游戏,并围绕顶部的 GridLayout 和底部的 JPanel 设计了界面。我在底部的信息面板上安排 JComponents 时遇到问题。我正在使用 GroupLayout 来排列信息面板中的项目。

下面是它应该如何出现的基本图:

Plan

这是实际结果:

Result

我不明白为什么最底部的 JLabel(较大的是 playerXTurnIndicator 标签)根本不显示。当然,当它们被默认添加到没有文本的组时,它们会采用水平或垂直布局指示的区域大小吗?

private void createComponents() {     
playerOneNameLabel = new JLabel("Name : ");
playerTwoNameLabel = new JLabel("Name : ");
playerOneScoreLabel = new JLabel("Score : ");
playerTwoScoreLabel = new JLabel("Score : ");

playerOneNameDataLabel = new JLabel("");
playerTwoNameDataLabel = new JLabel("");
playerOneScoreDataLabel = new JLabel("0");
playerTwoScoreDataLabel = new JLabel("0");

playerOneTurnIndicatorLabel = new JLabel();
playerOneTurnIndicatorLabel.setBackground(Color.GREEN);
playerOneTurnIndicatorLabel.setPreferredSize(new Dimension(100, 20));

playerTwoTurnIndicatorLabel = new JLabel();
playerTwoTurnIndicatorLabel.setBackground(Color.RED);
playerTwoTurnIndicatorLabel.setPreferredSize(new Dimension(100, 20));

infoMinesRemainingLabel = new JLabel("Mines Remaining : ");
infoMinesRemainingData = new JLabel("0");

infoTileCoordLabel = new JLabel("Tile : ");
infoTileCoordDataLabel = new JLabel("0, 0");

playerOneBombButton = new JButton("Bomb");
playerTwoBombButton = new JButton("Bomb");

GroupLayout layout = new GroupLayout(this);

layout.setAutoCreateContainerGaps(true);
layout.setAutoCreateGaps(true);

layout.setHorizontalGroup(
layout.createSequentialGroup()
.addGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup()
.addGroup(
layout.createSequentialGroup()
.addComponent(playerOneNameLabel)
.addComponent(playerOneNameDataLabel))
.addGroup(
layout.createSequentialGroup()
.addComponent(playerOneScoreLabel)
.addComponent(playerOneScoreDataLabel))
.addComponent(playerOneTurnIndicatorLabel))
.addComponent(playerOneBombButton))
.addGap(10)
.addGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup()
.addComponent(infoMinesRemainingLabel)
.addComponent(infoTileCoordLabel))
.addGroup(
layout.createParallelGroup()
.addComponent(infoMinesRemainingData)
.addComponent(infoTileCoordDataLabel)))
.addGap(10)
.addGroup(
layout.createSequentialGroup()
.addComponent(playerTwoBombButton)
.addGroup(
layout.createParallelGroup()
.addGroup(
layout.createSequentialGroup()
.addComponent(playerTwoNameLabel)
.addComponent(playerTwoNameDataLabel))
.addGroup(
layout.createSequentialGroup()
.addComponent(playerTwoScoreLabel)
.addComponent(playerTwoScoreDataLabel))
.addComponent(playerTwoTurnIndicatorLabel))));

layout.setVerticalGroup(
layout.createParallelGroup()
.addGroup(
layout.createParallelGroup()
.addGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup()
.addComponent(playerOneNameLabel)
.addComponent(playerOneNameDataLabel))
.addGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup()
.addComponent(playerOneScoreLabel)
.addComponent(playerOneScoreDataLabel)))
.addComponent(playerOneTurnIndicatorLabel))
.addComponent(playerOneBombButton)
)
.addGap(50)
.addGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup()
.addComponent(infoMinesRemainingLabel)
.addComponent(infoMinesRemainingData))
.addGroup(
layout.createParallelGroup()
.addComponent(infoTileCoordLabel)
.addComponent(infoTileCoordDataLabel)))
.addGap(50)
.addGroup(
layout.createParallelGroup()
.addComponent(playerTwoBombButton)
.addGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup()
.addComponent(playerTwoNameLabel)
.addComponent(playerTwoNameDataLabel))
.addGroup(
layout.createParallelGroup()
.addComponent(playerTwoScoreLabel)
.addComponent(playerTwoScoreDataLabel))
.addComponent(playerTwoTurnIndicatorLabel))));

this.setLayout(layout);
}

问候,

杰米

最佳答案

显示了 JLabel(因此显示了底部的可用空间),但没有颜色。请改用 JPanels(背景仅适用于不透明组件,请参阅 http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#setBackground%28java.awt.Color%29)。

关于java - GroupLayout 未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14731062/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com