現在、JEditorPane に画像 (Jlabel 付き) を表示しようとしています。私は Swixml とフォーム レイアウトで作業しています。JLabel と JEditorPane を同じ場所に配置しました。したがって、「setVisible」をtrueまたはfalseに設定するだけで、画像が表示されます。
これまでのところ、すべて順調です。しかし、誰かが JEditorPane でテキストを選択しようとすると、ここで醜いことが起こります:
私はいくつかのことを試します:
JEditorPane を無効にします。
選択範囲が表示されなくても、テキストは JLabel に表示されます。
塗り直し :
JLabelを再描画すると、再び前面に押し出されますが、表示されないようにするために(50ミリ秒ごとに1回など)繰り返し実行する必要があります。
また、選択範囲を再描画しようとしましたが、うまく機能しません。場合によっては無視されるか、速度が低下し、それでも醜いです
最後のアイデアは、JLabel が displayer のときに JEditorPane にマウスが入らないようにすることでしたが、MouseEnter イベントでは、EditorPane からポイントを取得できず、JEditorPane の外の適切な場所にカーソルを置くのが難しくなりました...
setComponentZOrder を試してみましたが、うまく機能させることができませんでした (確かに誤用しました) が、描画順序を変更するだけなので、問題を解決できるとは思いません (最後に描画されるのは Java で一番上にあります)。 )、しかし、それは明らかに再描画の問題です。
Java 1.6 を使用せざるを得ないことを指摘しておくと便利です (Java 1.7 と 1.8 で使用しなければならない同一の名前のクラスとの競合、Sun の変更ログは 1.9 での修正について述べています ...)
コンテキストはアプレットです。理解できない場合 (英語は母国語ではありません)、遠慮なく訂正して質問してください。
助けてくれてありがとう!