java - JFrame - 设置位置

标签 java jframe

我正在尝试使用命令“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,有人对如何解决这个小问题有建议吗?

最佳答案

setLocation 方法仅在使用绝对定位时才有效。为此,您需要设置一个 null 布局管理器,如下所示:

panel.setLayout(null);

但这是推荐的,并且很难正确实现,因为您还需要手动设置边界。

查看此链接以获取更多信息: http://docs.oracle.com/javase/tutorial/uiswing/layout/none.html

我建议寻找另一种更合适的布局方式。

关于java - JFrame - 设置位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34309254/

相关文章:

Java的hashmap : Is keys() indeed missing?

java - 在不需要现有类的情况下在 java 中创建 JSON 文字

java - 更新整个 JFrame,包括所有 JComponent

java - 如何通过关闭JFrame直接关闭JOptionPane?

java - 使用Java Swing GUI制作石头、剪刀、布、蜥蜴、斯波克

java - Java中 'class'在哪里声明的?

java - JAXP 撒克逊-he : XMLfile StreamSource doesn't release file access after parsing error

java - 奇怪的 JFrame 大小

java - JOptionPane.showConfirmDialog 阻止后台窗口

java - for 循环中输出关闭