0

JPanels を使用して印刷プレビューをシミュレートし、コンテンツ パネルを印刷するだけですが、本質的に同じドキュメントである複数のパネルを印刷しようとすると、現在画面に表示されているパネルのみが印刷されるという問題が発生しました。

現在画面に表示されていなくても JPanel を強制的に再描画する方法はありますか?

私が試してみました:

  • 次の方法でダブルバッファリングを無効にします。
    • JComponent.setDoubleBuffered()
    • RepaintManager.setDoubleBufferingEnabled()
  • 二度塗り
  • 絵を描くpaint()
  • 絵を描くrepaint()
  • 絵を描くprint()
4

1 に答える 1

0

画面外にペイントすることができず、Swing API と戦って時間を無駄にしているように感じたので、ごまかして、パネルが印刷されているときに画面に表示されるようにしました。現在、印刷中のページを表示する新しい「機能」があります。

ユーザーの顔にすべてのページを押し付けたくないので、誰かがこれを行う方法を知っている場合に備えて、質問を開いたままにします。


アップデート

問題は拡張されたコンポーネントにあったことが判明しjava.awt.Container、Swing コンポーネントは、この種のレンダリングを処理する特定の AWT メソッドをオーバーライドする必要があります。

于 2013-10-21T13:06:31.447 に答える