我是一个有点新手的程序员,我在向我的框架添加图像时遇到了一些麻烦。虽然我知道如何一般地添加图像,但这种特殊情况并不起作用。
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);
图像显示,但是当它在那里时它没有。帧的大小如何影响图像显示以及如何绕过它?
答案 0 :(得分:3)
只是好奇,从逻辑上讲,是什么让你认为在添加任何组件之前,框架应该是?从逻辑上讲,首先添加组件似乎是正确的,然后使框架可见。就像在画家画任何东西之前在画廊里展示一幅画一样。这没有任何意义。我非常怀疑设置尺寸与它有什么关系。如果您没有设置框架的大小,则框架看起来尽可能小。当您调整框架大小时,它会导致重新绘制,然后显示您添加的标签。 但通常情况下,您希望在添加所有组件之后始终设置框架可见,以避免此问题。
旁注:你应该远离空布局。您需要学会使用Layout Managers并让他们为您进行动态调整和定位。