在用Java的Swing开发程序时,我使用了很多个JLabel来铺满整个界面以实现图片的显示,但现
在用Java的Swing开发程序时,我使用了很多个JLabel来铺满整个界面以实现图片的显示,但现在又有了新问题:我想在一张图片上显示另一张,比如我想在一个JLabel显...
在用Java的Swing开发程序时,我使用了很多个JLabel来铺满整个界面以实现图片的显示,但现在又有了新问题:我想在一张图片上显示另一张,比如我想在一个JLabel显示的图片上加上一张表示人物的图片,怎么做呢?两张图片都必须显示出来啊!如果可以,请顺便说一下如何在显示图片的时候是某一种颜色透明,例如白色。万分感谢!
展开
3个回答
展开全部
其实你不用添加jlabel,直接方jpanel就可以
你可以重写 jpanel里面的 paintComponent()方法
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D gr = (Graphics2D) g;
gr.drawImage(img, x, y, width, height); //x ,y 是坐标
//想显示在上一张图片上面时
gr.drawImage(img1, x, y, width, height); //只要保证这张图片比上一张小就行,大了就覆盖了
至于颜色,最简单的就是
gr.setPaint(new color(0,0,0,0.5f))//前面三个就是RGB的数值,最后一个是透明度的数值
//想要上面显示文字?
gr.drawString(str, x, y);//str就是字符串 x ,y 坐标
//当然 前提你可能会选择字体颜色和大小
gr.setColor(Color.RED);
gr.setFont(new Font("Arial Black",Font.ITALIC, 50));
//当然还有一种透明,可以设置图片透明 要在它后面执行
AlphaComposite newComposite = AlphaComposite.getInstance(
AlphaComposite.SRC_OVER, 0.5f);//在这里设置透明度
gr.setComposite(newComposite);
有些地方是我手敲的 你自己注意大小写
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询