Java JEditorPane半透明背景选择错误

Java JEditorPane半透明背景选择错误,java,swing,user-interface,jeditorpane,visual-glitch,Java,Swing,User Interface,Jeditorpane,Visual Glitch,我有一个JEditorPane,在一个JScrollPane里面(都是透明的)。这些是在一个有半透明背景的JPanel内。当我在JEditorPane中选择文本时,我发现了一个奇怪的错误: 因此,其他元素不在同一个JPanel中,选择周围的“幽灵”,更多见本截图: JavaGUI对我来说是第一次,我只做过没有GUI的服务器端应用程序 专家组代码: @SuppressWarnings("serial") public class NewsPanel extends JPanel

我有一个JEditorPane,在一个JScrollPane里面(都是透明的)。这些是在一个有半透明背景的JPanel内。当我在JEditorPane中选择文本时,我发现了一个奇怪的错误:

因此,其他元素不在同一个JPanel中,选择周围的“幽灵”,更多见本截图:

JavaGUI对我来说是第一次,我只做过没有GUI的服务器端应用程序

专家组代码:

    @SuppressWarnings("serial")
    public class NewsPanel extends JPanel {

    private JEditorPane newsArea;


    public NewsPanel() {
        setLayout(new BorderLayout());
        setBackground(new Color(226, 0, 0, 179));
        loadContent();
        setSize(500,400);
    }

    private void loadContent() {
        newsArea = new JEditorPane();
        newsArea.setEditable(false);
        newsArea.setBorder(BorderFactory.createEmptyBorder());
        newsArea.setSelectionColor(Color.GRAY);
        newsArea.setOpaque(false);
        newsArea.setBackground(new Color(0, 0, 0, 0));

        HTMLEditorKit kit = new HTMLEditorKit();
         StyleSheet styleSheet = kit.getStyleSheet();
         styleSheet.addRule("A {color:#0088CC}");
         styleSheet.addRule("#newsHeader {font-weight:bold;font-size:14px;color:#339933;}");
         styleSheet.addRule("#newsBody {font-size:10px;padding-left:20px;}");
         newsArea.setEditorKit(kit);


        JScrollPane scrollPane = new JScrollPane(newsArea, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        add(scrollPane, BorderLayout.CENTER);

        scrollPane.getViewport().setBackground(new Color(0, 0, 0, 0));
        scrollPane.getViewport().setOpaque(false);
        scrollPane.setViewportBorder(BorderFactory.createEmptyBorder());
        scrollPane.setOpaque(false);
        scrollPane.setBackground(new Color(0, 0, 0, 0));
        scrollPane.setBorder(BorderFactory.createEmptyBorder());
    }

    @Override
    public void paint(Graphics g) {
        super.paint(g);
    }

    @Override
    public boolean isOptimizedDrawingEnabled() {
        return false;
    }

    public void reload() {
        removeAll();
        loadContent();
        validate();
        repaint();
    }
}
有没有办法解决这个问题?我相信这很简单,但就像我说的,我是UI的新手

这些是在一个有半透明背景的JPanel内。当我在JEditorPane中选择文本时,我发现了一个奇怪的错误:


检查可能存在的问题和一些解决方案。

更快的帮助,发布一个。同意……否则在这里搜索这是怎么可能的(两种不同的方式)请注意,在160 LOC,我会认为这个源足够短(尽管它也需要一个代码>主(String [])< /COD>来真正地把它放在屏幕上。但如果我试图复制/粘贴到问题中,它就会丢失格式。Gist更新,对UI来说是新的,我不确定是什么创建了更新等,但从我在物联网中发现的可能导致更新的东西来看,我把它们留在了。根据NetBeans,AlphaContainer(该链接建议的)不存在。o@DanSpiteri,这就是为什么要从该站点下载代码,或者如果不喜欢下载代码,则需要自定义自己类的paintComponent()方法。该链接还提供了该方法的一个示例。