我试图通过使用setText来不断更改JLabel的文本,如下所示:
public void nextCard(Player player, PlayingCard card, GameEngine engine) {
// Displaying the card
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
//Adding on new card to one drawn.
playerHand.setText(String.format("%s[%s %s] ", playerHand.getText(),card.getSuit(),card.getValue()));
}
});
}
有问题的标签具有以下网格袋约束:
gbc.fill = 0;
gbc.gridx = 1;
gbc.gridy = 2;
gbc.weightx = 0;
gbc.anchor = GridBagConstraints.NORTHWEST;
add(playerHand, gbc);
每当文本添加到标签时,它都会不断移动其他内容,例如:https://gyazo.com/489c9ebf0ca2e5a162ed9066a771787b
有没有办法让我的文字不推右边的字段?
答案 0 :(得分:0)
有没有办法让我的文字不推右边的字段?
GridBagLayout像网格一样工作。如果更改网格中一个单元格的大小,则可能会影响周围其他单元格的大小/位置。
在您的情况下,您不希望有问题的组件控制列的宽度,因此您可以告诉组件占用两列的空间:
gbc.gridwidth = 2;
请阅读How to Use GridBagLayout的Swing教程中的部分,以获取有关约束和工作示例的更多信息。