Gra*_*min 4 java swing jlabel right-align
我有以下代码:
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
for(int xx =0; xx < 3; xx++)
{
JLabel label = new JLabel("String");
label.setPreferredSize(new Dimension(300,15));
label.setHorizontalAlignment(JLabel.RIGHT);
panel.add(label);
}
Run Code Online (Sandbox Code Playgroud)
这就是我希望文本看起来的样子:
[ String]
[ String]
[ String]
Run Code Online (Sandbox Code Playgroud)
这就是它的样子
[String]
[String]
[String]
Run Code Online (Sandbox Code Playgroud)
由于某种原因,标签没有设置为我指定的首选大小,我认为因此,它没有正确对齐我的标签文本.但我不确定.任何帮助,将不胜感激.
dal*_*ez1 13
JLabel label = new JLabel("String", SwingConstants.RIGHT);
Run Code Online (Sandbox Code Playgroud)
:)
setPreferredSize/MinimumSize/MaximumSize方法取决于父组件的布局管理器(在本例中为面板).
首先尝试使用setMaximumSize而不是setPreferredSize,如果我没有错,应该使用BoxLayout.
另外:可能你必须使用和玩胶水:
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
panel.add(Box.createHorizontalGlue());
panel.add(label);
panel.add(Box.createHorizontalGlue());
Run Code Online (Sandbox Code Playgroud)
如果你需要Y_AXIS BoxLayout,你也可以使用嵌套面板:
verticalPanel.setLayout(new BoxLayout(verticalPanel, BoxLayout.Y_AXIS));
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
panel.add(Box.createHorizontalGlue());
panel.add(label);
panel.add(Box.createHorizontalGlue());
verticalPanel.add(panel);
Run Code Online (Sandbox Code Playgroud)