java swing面板设置透明度_Java Swing-导致伪像的半透明组件

我目前正在为大学课程进行小组项目,但遇到了一些绊脚石.我们已决定要实现的程序是一个具有中央服务器的对等聊天客户端,该服务器用于存储和共享用户名等.我被分配来做GUI.

一位朋友开玩笑地建议我加入“火红的背景!”所以我决定这样做,但是要有一个用户选择的背景图像.照原样,只有一点点背景图像可见,所有组件都位于其上方,因此我决定尝试实现半透明.

这是我的问题所在:

从输入框向聊天窗口发送信息时,或者在导航好友列表或滚动聊天窗口时,会留下奇怪的工件.这些工件有时是“发送”按钮的半透明“鬼影”,有时是菜单的一部分,也可能是旧文本.在我看来,整个框架没有正确重绘,但是我不确定它是如何工作的.

对于实现JTextComponent的组件,我将其选择颜色设置为半透明颜色.对于其他组件,我将背景设置为半透明.我有一个函数setTranslucency(Component com),它查看一个组件,根据组件的透明度设置其透明度,然后查看它是否是某种容器,并递归设置每个项目的透明度.

现在,我发现解决此问题的方法是将窗口拖动到看不见的位置(例如,将窗口最小化或拖动到屏幕外并向后拖动).

所以,

1)是否有一种方法可以强制整个窗口像从屏幕上拖动或最小化时一样进行更新?

要么,

2)我一开始做错了吗?如果是这样,我将如何解决?

这是供参考的图片:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值