我正在尝试使用Netbeans将n图像添加到面板。 我将一个Panel从调色板拖到框架上,并根据我想要的图像大小调整它的大小。 在构造函数中,我然后将图像添加到面板(我将它命名为panelImage)。
JLabel label = new JLabel(new ImageIcon("images\\BrokenFrameResized.jpg"));
paneImage.add(label);
但是图像不显示。 使用Matisse布局管理器(i.o.w。拖放面板)将图像显示为Panel大小的最佳方法是什么。
使用paintComponent(Graphics g)是否更好?
答案 0 :(得分:6)
使用paintComponent(Graphics g)是否更好?
如果您希望图像显示在其他组件后面,则显示在JLabel
中。这里的问题很可能是您正在访问嵌入式应用程序资源,就像它是File
一样。必须通过URL
访问嵌入式资源。
URL urlToImage = this.getClass().getResource("/images/BrokenFrameResized.jpg");
ImageIcon icon = new ImageIcon(urlToImage);
...
答案 1 :(得分:2)
呀。你绝对应该使用paintComponent。如果您尝试使用JLabel,则很难将任何其他组件放入面板中,因为组件可能不会重叠。