JScrollPaneを移動して、JPanelの前に部分的に覆うようにすると、JScrollPane内のJEditorPaneにペイントの問題が発生します。JPanelの背景を適切に再ペイントしません。そのため、スクロールするとスクリーンペイントの問題が発生します。
次の方法を使用してオーバーラップを試しました-JPanel内のJScrollPane-FreeLayout(NetBeans GUI Builder)を使用してJPanelを部分的にカバーするJScrollPane-JLayeredPaneを使用してJPanelを部分的にカバーするJScrollPane
現在、JPanelの背景は塗りつぶされていますが、背景が塗りつぶされたらすぐにグラデーションを適用するように拡張します。
JEditorPaneに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()でグラフィックコンポジットを変更する」これで問題が解決する場合は、その方法を知りたいと思います。