我正在尝试制作透明的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 );
单击按钮时,请防止按钮背景被涂漆。
如果您想要部分透明度,请查看具有解决方案的透明度的背景。