gpt4 book ai didi

java - 透明 UI (+UIManager) 工件

转载 作者:行者123 更新时间:2023-12-04 05:44:32 24 4
gpt4 key购买 nike

我有一个应用程序可以绘制 background imagepanel ,但要达到最佳UI,我需要设置Component背景Transparent :

我使用 UI 管理器使每个组件都透明:uimanager.put(Button, background(new color(0, 0, 0, 0); <-类似的东西,这很好用,除了..
onMouseOver component重绘自身(我猜)并导致伪影.. 我怎样才能在 UIManager 中避免这种情况? ?

(我创建了一个类:uidefaults.java 以及所有 UIManager 设置)

提前致谢!!

最佳答案

嗯,这很简单 - 不要对不透明的组件(确切地说是任何 JComponent 祖先)使用透明背景颜色。

要删除组件背景,您不需要设置透明颜色 - 只需使用此方法:

component.setOpaque ( false );

这将隐藏组件背景并且还将更改组件重绘策略,因此它不会在重绘调用时创建任何工件。

此外,如果您仍然希望在组件后面有半透明背景,您可以像这样覆盖paintComponent方法:
    JLabel label = new JLabel ( "Transparent background" )
{
protected void paintComponent ( Graphics g )
{
g.setColor ( getBackground () );
g.fillRect ( 0, 0, getWidth (), getHeight () );
super.paintComponent ( g );
}
};
label.setOpaque ( false );
label.setBackground ( new Color ( 255, 0, 0, 128 ) );

这将强制 label 隐藏其默认背景并绘制您自己的背景(这取决于组件的背景属性)。

关于java - 透明 UI (+UIManager) 工件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10849183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com