如何设置 JLabel 以占用所有可用宽度 space?
How do you set a JLabel to take all the available width space?
我正在尝试使 JLabel
文本居中并更改背景和前景色。我尝试使用 HTML:
JLabel listHeader = new JLabel("<html><span style='background-color:#555;color:White;text-align:center;'>Tables</span></html>");
但它似乎不起作用,如下图所示。
Image of the components
标签位于布局管理器设置为具有以下约束的网格包布局的面板内:
c.gridy=0;
c.gridx=0;
c.weighty=0;
c.weightx=1;
c.fill=GridBagConstraints.NONE;
c.anchor = GridBagConstraints.LINE_START;
我也尝试填充 BOTH
,结果相同。
如何让标签占据所有宽度 space?
您可以尝试锚定在中心,而不是在线的开头。
I tried to use HTML:
不要使用 HTML。
I'm trying to center the JLabel text
要使文本在标签可用的 space 中居中,您可以使用:
label.setHorizontalAlignment(JLabel.CENTER);
and to change the background and foreground color.
您需要使标签不透明:
label.setOpaque( true ):
label.setBackground( Color.RED );
I tried with fill BOTH as well, same result.
嗯,我认为您不需要 "BOTH",因为您只关心宽度。您可能还需要使用 weightx
约束。阅读有关 How to Use GridBagLayout 的 Swing 教程部分,了解有关使用约束的更多信息。
没有你的 MCVE/SSCCE
我们无法准确地看到你在做什么。
我正在尝试使 JLabel
文本居中并更改背景和前景色。我尝试使用 HTML:
JLabel listHeader = new JLabel("<html><span style='background-color:#555;color:White;text-align:center;'>Tables</span></html>");
但它似乎不起作用,如下图所示。
Image of the components
标签位于布局管理器设置为具有以下约束的网格包布局的面板内:
c.gridy=0;
c.gridx=0;
c.weighty=0;
c.weightx=1;
c.fill=GridBagConstraints.NONE;
c.anchor = GridBagConstraints.LINE_START;
我也尝试填充 BOTH
,结果相同。
如何让标签占据所有宽度 space?
您可以尝试锚定在中心,而不是在线的开头。
I tried to use HTML:
不要使用 HTML。
I'm trying to center the JLabel text
要使文本在标签可用的 space 中居中,您可以使用:
label.setHorizontalAlignment(JLabel.CENTER);
and to change the background and foreground color.
您需要使标签不透明:
label.setOpaque( true ):
label.setBackground( Color.RED );
I tried with fill BOTH as well, same result.
嗯,我认为您不需要 "BOTH",因为您只关心宽度。您可能还需要使用 weightx
约束。阅读有关 How to Use GridBagLayout 的 Swing 教程部分,了解有关使用约束的更多信息。
没有你的 MCVE/SSCCE
我们无法准确地看到你在做什么。