为什么当JFrame有.setsize时图像不能添加



我是一个新手程序员,我有一些麻烦添加图像到我的框架。虽然我知道如何添加图像,但在这种情况下,它不起作用。

public class Tutorial extends JFrame{
    Tutorial(){
        JFrame frame = new JFrame("ImageTutorial");
        frame.setVisible(true);
        frame.setSize(750,850);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null);
        ImageIcon image = new ImageIcon(getClass().getResource("Green Block.png"));
        JLabel imagelabel = new JLabel(image);
        imagelabel.setBounds(10, 10, 75, 75);
        imagelabel.setOpaque(true);
        frame.add(imagelabel);  
现在,我找到了问题所在,但我不明白"为什么"会有问题。当我删除
        frame.setSize(750,850);

显示的图像,但当它在那里,它不。框架的大小如何影响图像显示,我该如何绕过它?

只是好奇,逻辑上,是什么让你认为一个框架应该是可见的你添加任何组件之前?从逻辑上讲,是不是应该先添加组件,然后使框架可见?这就像画家还没有在上面画上任何东西就在画廊里展示一幅画一样。这完全没有道理。我非常怀疑设置大小与它有任何关系。如果你没有设置帧的大小,那么帧就会尽可能的小。当你调整框架的大小时,它会导致重新绘制,然后显示你添加的标签。但通常,你希望总是在添加所有组件后设置frame visible ,以避免这个问题。

旁注:你应该远离空布局。你需要学会使用布局管理器,并让他们为你做动态大小和定位。

相关内容

  • 没有找到相关文章

最新更新