JViewport.BACKINGSTORE_SCROLL_MODE和setOpaque(false)

时间:2012-01-18 18:40:13

标签: java swing scroll transparent

我的滚动窗格有透明度/滚动问题。据我所知,文档没有解决这种问题。

以下是透明文本窗格的代码:

    textArea.setOpaque(false);
    scrollPane.setViewportView(textArea);
    scrollPane.setViewportBorder(border);
    scrollPane.setOpaque(false);
    //scrollPane.getViewport().setScrollMode(JViewport.BACKINGSTORE_SCROLL_MODE);
    scrollPane.getViewport().setOpaque(false);

这种方法很好,除了滚动非常缓慢。取消注释setScrollMode行后,滚动响应性会提高,但透明度会丢失。

我有什么办法可以实现双赢吗?

编辑:好的,原来的问题没有真正回答,但我确实发现原因实际上是对javax.swing.UIManager.put("TabbedPane.font", someCustomFont)的调用。我遗漏了这个细节,因为我认为这是无关紧要的......谁会想到。我不知道为什么这会导致滚动缓慢,但我很高兴找到问题。

1 个答案:

答案 0 :(得分:2)

1)JViewport默认为traslucent/transparent

2)必需集合遵循JViewpot

的方法
JViewport.setScrollMode(JViewport.BLIT_SCROLL_MODE);
JViewport.setScrollMode(JViewport.BACKINGSTORE_SCROLL_MODE);
JViewport.setScrollMode(JViewport.SIMPLE_SCROLL_MODE);

3)简单示例here,在滚动期间没有任何自由或跳跃