【发布时间】:2023-01-23 00:10:05
【问题描述】:
f = new JFrame();
f.setExtendedState(JFrame.MAXIMIZED_BOTH);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
d = new JPanel();
f.add(d);
ImageIcon icon = new ImageIcon("C:\\Users\\jean\\Pictures\\988057.jpg");
JLabel background = new JLabel(icon);
background.setSize(d.getSize());
background.setLocation(0,0);
d.add(background);
d.setLayout(null);
background.setOpaque(true);
d.add(background, BorderLayout.CENTER, 0);
我试图将 JLabel 作为背景,但我做不到。这条路没问题。发生了什么?
【问题讨论】:
-
当您的布局为空时,为什么要使用
BorderLayout.CENTER?为什么一开始就使用空布局? -
建议: 1. 首先调试——通过在 JOptionPane 中显示 ImageIcon 确保路径正确。传进去看看能不能显示。 2.更好地获取图像作为资源不是作为您尝试做的文件。从课堂上获取资源,并通过
ImageIO.get(...)导入图片。 3. 你几乎不应该使用空布局。 4. 要使用图像作为 GUI 的背景,通常最好在背景 JPanel 的 paintComponent 方法中绘制它。 -
真的谢谢。我会找出问题所在。文件 file = new File("ruta/de/la/imagen.jpg"); BufferedImage image = ImageIO.read(文件);
-
cmets 中的大块代码难以辨认。如果是答案,请发布答案。如果它是问题的一部分,请编辑问题。
-
edit你有任何新信息的问题
标签: java