我正在尝试用JScrollPane包装JTextPane,并且我需要背景是透明的。
这是我的代码:
public CharPanel(){
super.setLayout(null);
JButton LButton = new JButton("<");
LButton.setBounds(0, 300, 50, 50);
super.add(LButton);
JButton RButton = new JButton(">");
RButton.setBounds(950, 300, 50, 50);
super.add(RButton);
JTextPane Bio = new JTextPane();
Bio.setBackground(new Color(0, 0, 0, 0));
JScrollPane BioScroll = new JScrollPane(Bio);
BioScroll.setBackground(new Color(0, 0, 0, 0));
BioScroll.setBounds(0, 500, 1000, 150);
super.add(BioScroll);
}
通常是这样的:https://gyazo.com/db7e4d2a5668b36ffc617cefb1423fc4
这是我输入一个字符后的样子:https://gyazo.com/1509d952005195d6e14365f0ae2da69a
看到奇怪的视觉错误吗?
答案 0 :(得分:1)
Bio.setBackground(new Color(0, 0, 0, 0));
请勿将颜色与alpha值一起使用。这样会破坏Swing的绘制规则,并且Swing不知道如何正确地绘制组件,并且您会获得绘制工件。
要完全透明,请使用:
component.setOpaque( false );
如果需要使用部分透明性,请查看Backgrounds With Transparency以获得更多有关此信息和解决方案的信息。