私が実装した移動テキスト ティッカーはスムーズに移動せず、重い GUI 操作が並行して実行されると、問題はさらに悪化します。
ペイントする独自のイメージを作成して、手動のダブル バッファリングを使用しています。
データが変更されると、次のコードを使用してバッファー イメージを更新します。
public static BufferedImage createBufferedImage(int w, int h) {
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gs = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gs.getDefaultConfiguration();
return gc.createCompatibleImage(w, h, Transparency.TRANSLUCENT);
}
次に、drawText(..) を使用して必要なテキストを描画し、その後 repaint() を呼び出します。
並行して、10 ミリ秒ごとに非同期スレッドが画像の次の X 位置を計算し、repaint() を呼び出します。
以下に説明するように、私のメイン コンポーネントは JComponet を拡張し、paintComponent() をオーバーライドします。
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(baseImage, scrollTextX, 0, null);
}
動きを良くするコツはありますか?
ティッカーの動きが他の GUI 操作の影響を受けないようにするにはどうすればよいですか?