JLabel setLocation和setBounds方法不起作用

时间:2020-04-07 18:42:54

标签: java swing jframe jlabel setbounds

首先,我非常了解布局管理器的存在,在这种情况下,我只是不想使用它。

我正在为应用程序编写一个简单的主菜单,但是无论我做什么,图像(JLabel)始终将其自身设置在屏幕的左上角。我尝试使用两种方法(setLocationsetBounds),但没有任何区别。

我确定这是一个愚蠢的错误,但我似乎无法弄清楚。

这是我的代码:

import javax.swing.*;

public class Main extends JFrame{

    protected ImageIcon createImageIcon(String path,
                                        String description) {
        java.net.URL imgURL = getClass().getResource(path);
        if (imgURL != null) {
            return new ImageIcon(imgURL, description);
        } else {
            System.err.println("Couldn't find file: " + path);
            return null;
        }
    }

    Main() {
        ImageIcon image1=createImageIcon("/monopoly.jpg","");
        JLabel image1l=new JLabel(image1);
        image1l.setLocation(200,200);
        image1l.setBounds(330, 300, 140, 60);
        add(image1l);
    }

    public static void main(String[] args) {
        Main f=new Main();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
        f.pack();
        f.setTitle("Monopoly");
        f.setSize(800,800);
        f.setLocationRelativeTo(null);
        f.setLayout(null);
    }
}

0 个答案:

没有答案