【发布时间】:2015-09-14 19:39:01
【问题描述】:
我一直在互联网上寻找如何在图像上添加组件的解决方案。我试过这个:
setContentPane(new JComponent(){
@Override
protected void paintComponent(Graphics g){
URL url = ...;
if(url==null){
//... Irelevant
return;
}
try {
BufferedImage img = ImageIO.read(url);
g.drawImage(img,0 ,0, this);
super.paintComponents(g);
} catch (IOException e) {
//... Irelevant
e.printStackTrace();
return;
}
}
});
nameLabel=new JLabel("<html><body>"+Main.translateColorsToHTML(name)+"</body></html>");
nameLabel.setAlignmentX(Component.LEFT_ALIGNMENT);
nameLabel.setVisible(true);
add(nameLabel);
哪个没用,所以我试过这个:
URL url = ...;//Fetching the url
if(url==null){
//... Unrelevant
return;
}
try {
BufferedImage img = ImageIO.read(url);
invImg = new JLabel(new ImageIcon(img));
invImg.setMaximumSize(new Dimension(340, 250));
setContentPane(invImg);
} catch (IOException e) {
e.printStackTrace();
return;
}
然后将组件添加到内容窗格/框架本身。 我绝对不知道如何做到这一点,任何帮助将不胜感激。 提前致谢!
【问题讨论】:
-
尝试在调用
super.paintComponent之后绘制图像,应该始终调用它
标签: java swing components