单击时,透明的jbutton会变成浅蓝色



我正在尝试制作透明的jbuttons(带有可见文本(,但是当按钮已单击时,背景变为浅蓝色。(不要介意代码中的凹痕。这都是正确的缩进(

我已经成功透明了按钮,但我担心问题可能是因为我将所有jbuttons添加到jlabel(背景图像(。

    JButton play = new JButton("Play");
    JButton quit = new JButton("Quit");
    JButton instructions = new JButton("Instructions");
    Color invs = new Color(0,0,0,0);
    play.setBackground(invs);
    quit.setBackground(invs);
    instructions.setBackground(invs);
    play.setBorderPainted(false);
    //play.setMargin(new Insets(0,0,0,0));
    play.setRolloverEnabled(false);
    play.setFocusable(false);
    play.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
    instructions.setBorderPainted(false);
    //instructions.setMargin(new Insets(0,0,0,0));
    instructions.setRolloverEnabled(false);
    instructions.setFocusable(false);
   instructions.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
    quit.setBorderPainted(false);
    //quit.setMargin(new Insets(0,0,0,0));
    quit.setRolloverEnabled(false);
    quit.setFocusable(false);
    quit.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));

    instructions.setForeground(Color.WHITE);
    play.setForeground(Color.WHITE);
    quit.setForeground(Color.WHITE);
Color invs = new Color(0,0,0,0);

不要使用透明的颜色尝试设置任何摆动组件的背景。使用透明颜色时,秋千无法正确绘制组件。

通常使用:

setOpaque( false );

当您想要在任何摆动组件上完全透明时。

但是,使用jbutton,您也需要:

setContentAreaFilled( false );

单击按钮时,请防止按钮背景被涂漆。

如果您想要部分透明度,请查看具有解决方案的透明度的背景。

最新更新