Java GridBagConstraints与GridBagConstraints.EAST对齐不正确
我希望我的多行标签右对齐。。。不知道为什么这么难。我尝试使用weightx并添加了一个空白jlabel,并将其权重设置为1.0。我不能让它工作。这个想法是一个人是左对齐的,另一个人是右对齐的。(有点像短信应用程序)。有人能提出一些建议吗?我一直在寻找类似的帖子,但是有太多关于GBLayout的帖子Java GridBagConstraints与GridBagConstraints.EAST对齐不正确,java,swing,layout,gridbaglayout,Java,Swing,Layout,Gridbaglayout,我希望我的多行标签右对齐。。。不知道为什么这么难。我尝试使用weightx并添加了一个空白jlabel,并将其权重设置为1.0。我不能让它工作。这个想法是一个人是左对齐的,另一个人是右对齐的。(有点像短信应用程序)。有人能提出一些建议吗?我一直在寻找类似的帖子,但是有太多关于GBLayout的帖子 JLabel rightLblName = new JLabel(npcName); GridBagConstraints gbc_rightLblName = new GridBagConstrai
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);
底部的文本块应该紧靠右侧。谢谢你的帮助。我想你的问题在下一行
gbc_rightLblChatText.fill=gridbagstraints.HORIZONTAL代码>
这样,您就失去了锚定的效果
,将fill
属性设置为gbc\u rightLblChatText.fill=GridBagConstraints.NONE代码>,它将帮助您
编辑:似乎您的标签扩展了JLabel
在本例中使用下一个代码,它将您的组件与东对齐
:
gbc_rightLblChatText.weightx = 1;
gbc_rightLblChatText.fill = GridBagConstraints.HORIZONTAL;
jLabel.setHorizontalAlignment(JLabel.RIGHT);
jLabel
是您的标签。我以前从未听说过JMultilineLabel。您可以尝试rightLblChatText.setHorizontal或rightLblChatText.selAlignmentX。这是一个自定义标签实现。。。我认为GBL对我来说不起作用,因为我已经尝试过了,问题是我希望它被正确地填充和对齐。我必须在这里想出另一个解决方案(可能添加JPanel和不同的布局)