JTextPane / JScrollPane显示问题

时间:2018-06-21 12:29:24

标签: java swing transparency jscrollpane jtextpane

我正在尝试用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

看到奇怪的视觉错误吗?

1 个答案:

答案 0 :(得分:1)

Bio.setBackground(new Color(0, 0, 0, 0));

请勿将颜色与alpha值一起使用。这样会破坏Swing的绘制规则,并且Swing不知道如何正确地绘制组件,并且您会获得绘制工件。

要完全透明,请使用:

component.setOpaque( false );

如果需要使用部分透明性,请查看Backgrounds With Transparency以获得更多有关此信息和解决方案的信息。