rob*_*rob 11 java swing layout-manager
我有以下代码,我尝试JLabel在一个自定义位置JFrame.
public class GUI extends JFrame
{
/**
*
* @param args
*/
public static void main(String args[])
{
new GUI();
}
/**
*
*/
public GUI()
{
JLabel addLbl = new JLabel("Add: ");
add(addLbl);
addLbl.setLocation(200, 300);
this.setSize(400, 400);
// pack();
setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
它似乎没有移动到我想要的地方.
jjn*_*guy 25
问题是LayoutManager面板的正在为您设置标签的位置.
您需要做的是将布局设置为null:
public GUI() {
setLayout(null);
}
Run Code Online (Sandbox Code Playgroud)
这将使框架不会尝试自行布局组件.
然后打电话setBounds(Rectangle)给标签.像这样:
addLbl.setBounds(new Rectangle(new Point(200, 300), addLbl.getPreferredSize()));
Run Code Online (Sandbox Code Playgroud)
这应该将组件放在您想要的位置.
但是,如果您没有一个非常好的理由自己布置组件,那么通常使用LayoutManagers对您有利的工作更好.
这是一个关于开始使用LayoutManagers 的好教程.
如果你必须离开LayoutManager 这里是一个很好的教程,没有一个去.