4

JScrollPaneを移動して、JPanelの前に部分的に覆うようにすると、JScrollPane内のJEditorPaneにペイントの問題が発生します。JPanelの背景を適切に再ペイントしません。そのため、スクロールするとスクリーンペイントの問題が発生します。

次の方法を使用してオーバーラップを試しました-JPanel内のJScrollPane-FreeLayout(NetBeans GUI Builder)を使用してJPanelを部分的にカバーするJScrollPane-JLayeredPaneを使用してJPanelを部分的にカバーするJScrollPane

現在、JPanelの背景は塗りつぶされていますが、背景が塗りつぶされたらすぐにグラデーションを適用するように拡張します。

JEdi​​torPaneにJPanelからトリミングされた背景を取り込むにはどうすればよいですか?

を使って透明にしますjEditorPane.setBackground(new Color(0,0,0,0))

setOpaque(false)パネルの場合と同じように使用してみましたが、JEditorPaneで使用すると、デフォルトの背景に戻るようです。

同僚による元の質問: https ://stackoverflow.com/questions/6364460/jframe-screen-paint-issues-when-using-transparency

元の質問はあまりよく書かれておらず、良い答えをもたらしていないようでした。

同僚の質問の提案への回答:

  • "setBackground(new Color(0,0,0,0));の代わりにsetOpaque(false);で試してください。" 問題を解決しませんでした。
  • 「pack()の後にvalidate()を追加してみてください」では、問題は解決しませんでした。
  • 「背景画像をJViewportにペイントする」は、背景がJScrollViewを超えて拡張し、他のコンポーネントの背後にも広がる必要があるため、機能しません。
  • 「UIデリゲートのpaint()でグラフィックコンポジットを変更する」これで問題が解決する場合は、その方法を知りたいと思います。
4

1 に答える 1

5

背景パネルクラスには、背景が透けて見えるようにすべてのコンポーネントを不透明にしないようにするコードがあります。

編集:

透明な背景で遊びたい場合は、問題の説明といくつかの解決策について、 「透明な背景」を確認してください。

この場合、BackgroundPaneがより簡単なソリューションです。

于 2011-06-16T17:06:48.663 に答える