如何使JTextField半透明

时间:2017-07-31 11:40:13

标签: java swing user-interface draw jtextfield

我正在尝试创建一个半透明背景的JTextField(即alpha值为120的黑色背景)。我目前的代码是:

    public static void designTextField(final JTextField tf) {
        tf.setBorder(null);
        tf.setFont(new Font("Comfortaa", Font.PLAIN, 30));

        tf.setBackground(new Color(0, 0, 0, 120));
        tf.setForeground(new Color(200, 200, 200, 200));
}

但是,这似乎不起作用。以下是此代码生成的图片(有两个文本字段):

未输入任何文字:

No text entered

输入的文字:

Text entered

如您所见,有几个奇怪的绘图错误,两个文本字段似乎完全不透明。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

Swing完美适用于透明度。你只需要添加

tf.setOpaque(false);

https://docs.oracle.com/javase/tutorial/uiswing/painting/problems.html 部分"问题:视觉工件出现在我的GUI"解释