gpt4 book ai didi

java - 如何在 JFrame 中设置图像的位置

转载 作者:行者123 更新时间:2023-11-29 06:38:20 25 4
gpt4 key购买 nike

我试图在 JFrame 中设置图像的位置。我以为 label.setLocation(100, 100); 会将图像的位置设置为 100, 100(左上角),但无论我放在哪里,它似乎都没有做任何事情.我什至尝试过 panal.setLocation(100, 100)。两者什么都不做,我没有错误并且图像确实出现但是在 0, 0。我做错了什么?这是我的代码:

import javax.swing.*;  

public class DisplayImage {
public DisplayImage() {
JFrame frame = new JFrame("Display Image");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel panel = (JPanel)frame.getContentPane();

JLabel label = new JLabel();
label.setIcon(new ImageIcon("src/img/school.png"));
label.setLocation(100, 100);
panel.add(label);

frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}

public static void main (String args[]) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new DisplayImage();
}
});
}
}

最佳答案

默认情况下,JFrame 使用 BorderLayout。当您将标签添加到框架时,标签将添加到 BorderLayout 的中心。布局管理器将覆盖该位置。

一个简单的解决方案是将 EmptyBorder 添加到标签,顶部/左侧插图为 100。然后不是将标签添加到中心,而是将标签添加到 NORTH。代码将类似于:

label.setBorder( new EmptyBorder(...) );
panel.add(label, BorderLayout.SOUTH);

作为一般规则,您不应尝试指定组件的确切位置。让布局经理做好他们的工作。

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com