-1

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

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);

图像显示,但当它没有。框架的大小如何影响图像的显示以及如何绕过它?

4

1 回答 1

3

只是好奇,从逻辑上讲,是什么让您认为在添加任何组件之前框架应该是可见的?从逻辑上讲,首先添加组件然后使框架可见似乎不正确。这就像在画家还没有画任何东西之前就在美术馆里展示一幅画。这没有任何意义。我非常怀疑设置大小与它有什么关系。如果您不设置框架的大小,则框架会尽可能小。当您调整框架大小时,它会导致重新绘制,然后显示您添加的标签。但通常,您希望在添加所有组件始终设置框架可见,以避免此问题。

旁注:您应该远离空布局。您需要学习使用布局管理器并让他们为您进行动态调整大小和定位。

于 2014-06-03T23:32:15.097 回答