我需要將JLabel對象添加到面板的特定組件。我使用setLabelFor方法,但是這個將標籤nex添加到組件。如何將其更改爲在組件頂部設置標籤?將JLabel放在組件上面
TextField sampleField = new TextField();
JLabel sampleLabel = new JLabel("sample text");
panel.add(sampleField);
sampleLabel.setLabelFor(sampleField);
panel.add(sampleLabel);
^這個將sampleLabel放在sampleField的旁邊。如何把sampleLabel放在sampleField的頂部?
預先感謝。
@Edit:
我用的是這樣的:
public TabBody()
{
setLayout(new BorderLayout());
nameField = new TextField();
//nameField.setSize(new Dimension(200, 200));
//revalidate();
nameLabel = new JLabel("name test");
amountLabel = new JLabel("amount test");
amountField = new TextField();
unitsBox = new JComboBox(units);
unitsBox.setSelectedIndex(3);
nameLabel.setLabelFor(nameField);
amountLabel.setLabelFor(amountField);
add(nameLabel, BorderLayout.NORTH);
add(amountLabel, BorderLayout.NORTH);
add(nameField);
add(amountField);
add(unitsBox);
}
和結果是:
我需要這樣的:
這是由LayoutManager控制的,爲了更好地幫助更早地發佈SSCCE – mKorbel
請參閱[JLayeredPane教程](http://docs.oracle.com/javase/tutorial/uiswing/components/layeredpane.html)瞭解一些想法 –