我正在尝试使用命令' panel.setLocation(int,int);'重新定位我的面板,但它对我不起作用。
public static void createWindow()
{
JFrame frame = new JFrame("JFrame Examinierung");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(1000, 600));
frame.setLocation(300, 300);
frame.pack();
frame.setResizable(false);
frame.setVisible(true);
//Frame_Menu.java
Frame_Menu frame_Menu = new Frame_Menu();
frame.setMenuBar(frame_Menu.getMenubar());
JPanel jpanel_mother = new JPanel();
jpanel_mother.setPreferredSize(new Dimension(0, 0));
jpanel_mother.setBackground(Color.WHITE);
jpanel_mother.setVisible(true);
frame.add(jpanel_mother);
JPanel jpanel_titel = new JPanel();
jpanel_titel.setPreferredSize(new Dimension(500, 50));
jpanel_titel.setVisible(true);
jpanel_titel.setBackground(Color.BLUE);
jpanel_titel.setLocation(100, 100); //not working relocation
jpanel_mother.add(jpanel_titel);
JLabel jlabel_jpanel_titel = new JLabel("JFrame Examinierung");
jlabel_jpanel_titel.setFont(new Font("Segoe UI", Font.BOLD, 20));
jlabel_jpanel_titel.setForeground(Color.white);
jpanel_titel.add(jlabel_jpanel_titel);
}
我想自由地移动JPanel,任何人都有关于如何解决这个小问题的建议吗?
答案 0 :(得分:2)
setLocation
- 方法仅在使用绝对定位时才有效。为此,您需要设置null
布局管理器,如下所示:
panel.setLayout(null);
但这是不推荐和非常努力才能做到正确,因为您还需要手动设置界限。
检查此链接以获取更多信息: http://docs.oracle.com/javase/tutorial/uiswing/layout/none.html
我建议您寻找另一种更合适的布局方式。