私はリストを持っています。リストには、多くのものを更新できるJProgressBar
を含むいくつかのものがあります。アイテムのいずれかが更新されるたびにそのJProgressBar
、リスト上のListDataListener
はそれを私はスクロールがI以来、ディスパッチスレッドで実行されていることを確認しようとしているJScrollPaneのビューポートの外側のペイント
/*
* This makes the updating content item automatically scroll
* into view if it is off the viewport.
*/
public void contentsChanged(final ListDataEvent evt) {
if (!EventQueue.isDispatchThread()) {
/**
* Make sure the scrolling happens in the graphics "dispatch" thread.
*/
EventQueue.invokeLater(new Runnable() {
public void run() {
contentsChanged(evt);
}
});
}
if (playbackInProgress) {
int index = evt.getIndex0();
currentContentList.ensureIndexIsVisible(index);
}
}
注意を使用して可視範囲をスクロールしようとします問題が再描画されている間にスクロールされていた可能性があります。しかし、まだ物事が本当に活発な場合、リスト項目のいくつかがビューポートの外側に塗りつぶして、JScrollPane
の外にあるものを上書きするという問題があります。強制的に露出イベントはそれらのものを再描画しますが、それは迷惑です。
クリッピング領域外でこれらのことを止めるために必要なことはありますか?