Java Netbeans使JTextField透明不起作用

Java Netbeans使JTextField透明不起作用,java,swing,netbeans,Java,Swing,Netbeans,我将背景图像作为JLabel的图标放置在JFrame上。但问题是我的文本字段和密码字段没有变得透明。我已经在两个字段的属性中禁用了不透明。它在netbeans预览中看起来是透明的,如下所示 它还生成了代码 但当我运行代码实例时,字段仍然有自己的白色背景 感谢您的帮助。谢谢。问题在于jtextfield的背景色和颜色选择器。它重置颜色的透明组件 解决方案: 不要使用颜色选择器。使用“自定义代码”选项。 然后将颜色设置为 new java.awt.Color(255, 255, 255, 0)

我将背景图像作为JLabel的图标放置在JFrame上。但问题是我的文本字段和密码字段没有变得透明。我已经在两个字段的属性中禁用了不透明。它在netbeans预览中看起来是透明的,如下所示

它还生成了代码

但当我运行代码实例时,字段仍然有自己的白色背景


感谢您的帮助。谢谢。

问题在于jtextfield的背景色和颜色选择器。它重置颜色的透明组件

解决方案: 不要使用颜色选择器。使用“自定义代码”选项。 然后将颜色设置为

new java.awt.Color(255, 255, 255, 0)
(不透明仍可以处于活动状态)

您的初始化组件应该如下所示

私有组件(){


问题是jtextfield的背景色和颜色选择器。它重置颜色的透明组件

解决方案: 不要使用颜色选择器。请使用“自定义代码”选项。 然后将颜色设置为

new java.awt.Color(255, 255, 255, 0)
(不透明仍可以处于活动状态)

您的初始化组件应该如下所示

私有组件(){


Swing只支持完全不透明或完全透明的组件,不支持半透明(或基于alpha的)颜色

这意味着您需要更改组件的
不透明
属性

将组件的背景色设置为基于alpha的颜色是一种幼稚的方法,这表明对绘制过程的实际工作方式缺乏了解,从而导致更多“意外”问题和更多不必要的问题

除此之外,
JTextField
(可能还有
jtexcomponent
s系列)似乎是该规则的例外

文本组件的UI paint委托不仅渲染文本,还渲染背景色,在某些平台上,背景色似乎忽略了
不透明
属性

在这种情况下怎么办?嗯,在这种情况下,你必须同时做这两件事

jTextField1 = new javax.swing.JTextField();
jTextField1.setOpaque(false);
jTextField1..setBackground(new java.awt.Color(255, 255, 255, 0));

您可以在属性页中找到
不透明
属性

Swing仅支持完全不透明或完全透明的组件,不支持半透明(或基于alpha的)颜色

这意味着您需要更改组件的
不透明
属性

将组件的背景色设置为基于alpha的颜色是一种幼稚的方法,这表明对绘制过程的实际工作方式缺乏了解,从而导致更多“意外”问题和更多不必要的问题

除此之外,
JTextField
(可能还有
jtexcomponent
s系列)似乎是该规则的例外

文本组件的UI paint委托不仅渲染文本,还渲染背景色,在某些平台上,背景色似乎忽略了
不透明
属性

在这种情况下怎么办?嗯,在这种情况下,你必须同时做这两件事

jTextField1 = new javax.swing.JTextField();
jTextField1.setOpaque(false);
jTextField1..setBackground(new java.awt.Color(255, 255, 255, 0));

您可以在属性表中找到
opace
属性

此处按下一步发布代码,而不是按下一步发布代码,也不是按图片发布代码。非常感谢您的帮助,非常感谢:)使用基于alpha的颜色并不是如何在Swing中使组件透明,Swing只遵守
opace
属性-以这种方式使用基于alpha的颜色将产生绘画艺术品基于我的研究,您需要同时使用基于alpha的颜色和将不透明属性设置为False这两种方法才能工作。非常感谢您的帮助,非常感谢:)使用基于alpha的颜色不是如何在Swing中使组件透明,仅Swingy遵循
不透明
属性-以这种方式使用基于alpha的颜色将产生绘画艺术品基于我的研究,您需要同时使用基于alpha的颜色和将不透明属性设置为false