gpt4 book ai didi

java - JTextField 的透明度不起作用

转载 作者:行者123 更新时间:2023-12-01 07:28:41 24 4
gpt4 key购买 nike

我正在处理登录服务器,当我将 Opaque 设置为 false 时,我的 JTextFields 不透明。

我的代码:

//username  
JTextField jUsername = new JTextField(10);
jUsername.setBounds(520, 284, 190, 25);
jUsername.setOpaque(false);
jUsername.setBorder(null);
getContentPane().add(jUsername);

//password
JTextField jPassword = new JTextField(15);
jPassword.setBounds(520, 374, 190, 25);
jPassword.setOpaque(false);
jPassword.setBorder(null);
//jPassword.setBackground(new Color(Color.TRANSLUCENT));
getContentPane().add(jPassword);

图像仍在发生:

enter image description here

有人曾经见过这个问题或者知道如何解决它吗?我环顾四周,但没有人遇到和我一样的问题,而且他们的修复对我不起作用。 (我知道我没有使用 JPasswordField 作为密码,这是临时的)

最佳答案

基本上,无论不透明设置如何,文本字段的 UI 委托(delegate)不仅会绘制文本,还会绘制字段区域(边框内)。

您可以做的是将背景颜色设置为透明值,例如 new Color(0, 0, 0, 0),它是完全透明的。

例如...

JTextField jUsername = new JTextField(10);  
jUsername.setBounds(520, 284, 190, 25);
jUsername.setBackground(new Color(0, 0, 0, 0));
jUsername.setOpaque(false);
jUsername.setBorder(null);
getContentPane().add(jUsername);

//password
JTextField jPassword = new JTextField(15);
jPassword.setBounds(520, 374, 190, 25);
jPassword.setBackground(new Color(0, 0, 0, 0));
jPassword.setOpaque(false);
jPassword.setBorder(null);
//jPassword.setBackground(new Color(Color.TRANSLUCENT));
getContentPane().add(jPassword);

您可以通过更改最后一个参数来影响颜色的透明度,例如 new Color(255, 255, 255, 128) 将是白色,50% 透明...

您可能还希望更改插入符号颜色,请查看 JTextComponent#setCaretColor了解更多详情

关于java - JTextField 的透明度不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20317387/

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