在用Java的Swing开发程序时,我使用了很多个JLabel来铺满整个界面以实现图片的显示,但现

在用Java的Swing开发程序时,我使用了很多个JLabel来铺满整个界面以实现图片的显示,但现在又有了新问题:我想在一张图片上显示另一张,比如我想在一个JLabel显... 在用Java的Swing开发程序时,我使用了很多个JLabel来铺满整个界面以实现图片的显示,但现在又有了新问题:我想在一张图片上显示另一张,比如我想在一个JLabel显示的图片上加上一张表示人物的图片,怎么做呢?两张图片都必须显示出来啊!如果可以,请顺便说一下如何在显示图片的时候是某一种颜色透明,例如白色。万分感谢! 展开
 我来答
HDSSHTLL
2013-09-18 · 超过28用户采纳过TA的回答
知道答主
回答量:127
采纳率:0%
帮助的人:65.4万
展开全部

其实你不用添加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);
    
    有些地方是我手敲的 你自己注意大小写
       
}
兰陵小爷
2013-09-18 · 超过10用户采纳过TA的回答
知道答主
回答量:189
采纳率:0%
帮助的人:56.7万
展开全部
放一个JPanel,再放java组件Jlabel
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西柏牧业
2013-09-17 · TA获得超过237个赞
知道答主
回答量:372
采纳率:100%
帮助的人:90.3万
展开全部
用PS
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式