【发布时间】:2013-12-09 13:36:23
【问题描述】:
我希望我的多行标签右对齐...不知道为什么这太难了。我尝试使用 weightx 并添加了一个空白 jlabel 并将其权重设为 1.0。我不能让它工作。这个想法是一个人都是左对齐的,另一个人是右对齐的。 (有点像短信应用)。任何人都可以提出一些建议吗?我一直在寻找类似的帖子,但是有很多关于 GBLayout 问题的帖子!
JLabel rightLblName = new JLabel(npcName);
GridBagConstraints gbc_rightLblName = new GridBagConstraints();
gbc_rightLblName.anchor = GridBagConstraints.EAST;
gbc_rightLblName.insets = new Insets(0, 0, 5, 5);
gbc_rightLblName.gridx = 5;
gbc_rightLblName.gridy = 2;
DialogueJInternalFrame.dialoguePanel.add(rightLblName, gbc_rightLblName);
JLabel rightLblImage = new JLabel("");
rightLblImage.setIcon(new ImageIcon(SpriteSheetCutter.makeColorTransparent((BufferedImage) SpriteStore.get().getSprite(npcFilename).getImage())));
rightLblImage.setBorder(DialogueJInternalFrame.raisedetched);
GridBagConstraints gbc_rightLblImage = new GridBagConstraints();
gbc_rightLblImage.insets = new Insets(0, 0, 5, 0);
gbc_rightLblImage.gridx = 6;
gbc_rightLblImage.gridy = 2;
DialogueJInternalFrame.dialoguePanel.add(rightLblImage, gbc_rightLblImage);
JMultilineLabel rightLblChatText = new JMultilineLabel(valuesSplit[1]);
GridBagConstraints gbc_rightLblChatText = new GridBagConstraints();
gbc_rightLblChatText.fill = GridBagConstraints.HORIZONTAL;
gbc_rightLblChatText.anchor = GridBagConstraints.EAST;
gbc_rightLblChatText.gridwidth = 7;
gbc_rightLblChatText.insets = new Insets(0, 0, 5, 0);
gbc_rightLblChatText.gridx = 0;
gbc_rightLblChatText.gridy = 3;
DialogueJInternalFrame.dialoguePanel.add(rightLblChatText, gbc_rightLblChatText);
底部的文本块应该紧贴右侧。感谢您的帮助。
【问题讨论】:
-
我以前从未听说过 JMultilineLabel。你可以试试 rightLblChatText.setHorizontal 或 rightLblChatText.selAlignmentX。
-
它是一个自定义标签实现...我认为 GBL 对我不起作用,因为我已经尝试过了
标签: java swing layout gridbaglayout