2

私が実装した移動テキスト ティッカーはスムーズに移動せず、重い 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 操作の影響を受けないようにするにはどうすればよいですか?

4

1 に答える 1

0

これは Swing アプリケーションで使用されていると思いますか? 次に、AWT イベント ディスパッチ スレッドから UI の更新を行う必要があると思います。これを行うには、 SwingUtilitiesクラスのinvokeLaterメソッドを使用します。

于 2012-05-04T07:25:19.760 に答える