問題タブ [jeditorpane]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 背景JPanel上のJScrollPane内の透明なJEditorPane
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()でグラフィックコンポジットを変更する」これで問題が解決する場合は、その方法を知りたいと思います。
java - JTextPane でハイパーリンクを無効にする
HTML コンテンツを含む JTextPane があります。コンテンツ タイプを変更したり、setText を呼び出したりせずに、ハイパーリンクを無効にしたいと考えています。私が欲しい
- 周囲のテキストと同じスタイルのハイパーリンク (通常、下線や青色がないことを意味します)
- ハイパーリンク上で動かすとマウスが手にならない
これを行う最も簡単な方法は何ですか? ハイパーリンク リスナーを変更する方法は既に知っていますが、リンクを通常のテキストとして表示する必要があります。
java - JEditorPane の html ロード済み要素へのアクセス/変更 + Unicode での HTMLEditorKit の問題 (Java)
それは長い質問になるので、我慢してください:)
私のアプリケーション
次のことを行う Java (JFrame GUI を使用) デスクトップ アプリケーションを開発しています。
- (.txt) ファイルをスキャンします。
- これらのファイルからいくつかの数値を解析し、いくつかの計算を実行して、最終的に結果を String 変数に格納します。
- これらの数値を特別な (テーブル) 形式で出力します。(注: 形式には一部の Unicode (アラビア語) 文字が含まれています。)
問題
最初の 2 つの部分はスムーズに進みました。しかし、第 3 部 (フォーマットされた出力) に来たとき、この特殊なフォーマットを表示する方法がわからなかったので、
- Java で特別な形式の出力 (テーブル) を表示する最良の方法は何ですか?
注:テーブルを適切にサポートしていないため、フォーマッターは役に立ちません。
解決策 1:
調査の結果、「html」などの特殊な形式を表示できる JEditorPane を使用できることがわかりました。そこで、必要な (テーブル) フォーマットで「html」ページを作成し、このページを [JEditorPane][4] に表示することにしました。私はそれを行い、いくつかのhtml要素の値をそれらの(.txt)ファイルから解析された数値に変更したくなるまでスムーズに進みました。
- html 要素 (例:
<td></td>
) にアクセスしてその値を変更するにはどうすればよいですか?
(.html) は、 を使用して JEditorPane 内にロードされることに注意してくださいsetPage(url)
。
Unicode 文字は正しく表示されますが、一部の要素の値を変更できませんでした (たとえば、 の値を に変更し<td> 000,000,000 </td>
たい<td> MainController.getCurrentTotalPayment() </td>
解決策 2:
HTMLDocument と HTMLEditorKit を使用する方法で、HTMLEditorKit を使用して (.html) を最初から作成し、.html を使用して JEditorPane に表示できますkit.insertHTML
。
上記の方法を使用してコンテンツを正常に追加しました。また、(MainController) クラスに格納されているため、(.txt) ファイルから解析された数値を追加することもできました。残念ながら、Unicode のアラビア文字は正しく表示されませんでした。
- これらの Unicode 文字を正しく表示するにはどうすればよいですか?
したがって、最初のソリューションには html 要素へのアクセスがなく、2 番目のソリューションには Unicode サポートがありません!
私の同僚は、私の MainController.java クラスにアクセスできる HTML ドキュメントで JSP コードを使用するようにアドバイスしてくれました。したがって、html 要素が既に変更された状態でページを JEditorPane にロードします。JSP の助けを借りずにそれを行う方法はありませんか?
JTidyの使用を推奨する人もいますが、Java の JDK 内でそれを行う方法はありませんか?
私はすべての可能な解決策を受け入れます。助けてください。
My Code:一部のコード コンテンツは関連性がないため省略されました
MainController.java
MyFormattedOuputSolutionOne.java:
MyFormattedOuputSolutionTwo.java:
htmlFormatTable.html:
私の長い複数の質問スレッドを読んでくれてありがとう。あなたの答えが待ちきれません。
アップデート:
この洞察を提供してくれた @Howard に感謝します。アラビア文字を対応する Unicode (例: ب = \u0628) に置き換えると問題なく動作しますが、各文字を置き換える必要なくそれを行う方法が必要ですよね?
java - JEditorPane、JScrollPane、およびアクセシビリティ
JScrollPane にラップされた JEditorPane を持つ単純な Swing アプリケーションがあります。
残念ながら、 JAWSやNVDAなどのスクリーン リーダー ソフトウェアは正しく動作しません。
フォーカスが JEditorPane に入ると、アクセシビリティ対応の名前とそれに続く「テキスト」のみを読み取り、予期される動作が JEditorPane のコンテンツの読み取りを続行するときに停止します。
JEditorPane を JScrollPane にラップしないと、期待どおりに動作します。
Monkey を使用してアクセス可能なツリーを検査しようとしましたが、JScrollPane にラップされた JEditorPane とラップされていない JEditorPane の間に関連する違いは見られません。
何か案は?
問題を示す簡単なサンプルを次に示します。フォーカスが最初の JEditorPane に入ると、JAWS は「最初のエディタペイン - 編集」と読み上げます。フォーカスが 2 番目の JEditorPane に入ると、JAWS は「2 番目のエディタ ペイン - 編集 - バー」と読み上げます。
java - JEditorPane でマルチパート HTML 電子メール メッセージを表示するにはどうすればよいですか?
以下は、メールの取得と表示に使用しているスニペットです。
しかし、それはいくつかの奇妙な動作を示しています。
ここに出力があります:(2つの部分で)
パート2
元のメールは次のとおりです。
出力について説明します。(first body part
マルチパート メッセージの)にplain message
+links of images
が貼り付けられます。2 番目の部分には元のメールの画像が貼り付けられます。というセリフでThe days of need.....anywhere 2回繰り返した。そして、第二部は決して終わりません。どうしてこれなの?
受信トレイには 7 件のメッセージがありますが、表示されるメールは 1 件だけです。メールを取得するコードが間違っていることは間違いありません。 しかし、どこが間違っているのかわかりません。_ステートメントに対応する正しい結果が得られたことを伝えましょう
senSub += InternetAddress.toString(msgs[i].getFrom()) + "\n" + msgs[i].getSubject() + "\n";
結果は 7 件のサブジェクトと 7 件の送信者です
コードの何が問題なのか教えてください。リンクをリンクとして貼り付け、テキストをテキストとして貼り付け、画像を画像として貼り付け、ランダムではないようにしたいのです。
java - 非同期イメージ ダウンロードに関する JEditorPane の問題
内部にいくつかの JEditorPanes を含む単純な Swing アプリケーションを作成しようとしています。各 JEditorPane には、内部に html タグを含むテキストが含まれています。また、一部のペインにはタグ付きの html が含まれています<img src='http://some.url' />
。これは、画像が Web のどこかにある可能性があることを意味します。問題は、画像の URL の 1 つが利用できない場合、すべての JEditorPanes とアプリケーション全体がハングすることです。(私は自分のスレッドで JEditorPanes を構築しており、構築後に を使用してそれらをメイン フレームに配置していますSwingUtilities.invokeLater(...)
)
画像が JEditorPanes に非同期的にダウンロードされると思いますが、ハングしているこれらの画像ダウンロード スレッドを強制終了する機能はありますか?
それとも、より良い解決策がありますか?
ありがとう
PS SwingWorker を使用しています。問題は、一部の画像 URL が利用できない場合、すべての JEditorPanes が画像をダウンロードできないことです。実際にはハングしませんが、イメージをダウンロードできません。なんで?
PPS
バックグラウンド スレッド:
java - java:jEditorPaneから改行記号付きのプレーンテキストを取得します
HTMLベースのjEditorPaneがあります。私はあなたが使うことができることを知りました:
このようにして、エディターペインからテキストを取り出しました。そして、それをエディターペインに戻したいときは、改行記号を<br/>に置き換えるだけです。そしてそれを元に戻すよりも。
今までは大丈夫です。しかし、エディターペインから2回目にテキストを取得したとき、改行記号はありません。
この改行記号を保持するにはどうすればよいですか?
java - Java - 同じ URL を読み込めず、エディタ ペインに 2 回表示されませんか?
これは、エディター ペインに URL の内容を表示するために使用したコードです。
同じURLのコンテンツを2回更新して表示することができませんでした。読み込みボタンを押すとコンテンツが読み込まれますが、もう一度読み込みボタンを押すと、URL が読み込まれないか、コンテンツが表示されません..何が間違っていますか? 私は Java に非常に慣れていないので、単純な解決策である場合は申し訳ありません。この問題を解決するための正しい方向に私を向けることができれば、それは素晴らしいことです。ありがとう!
java - ネットワークを介してファイルをロードし、それを文字列として処理する方法
URLの内容をJTextAreaに表示したいのですが。XMLファイルを指すURLがあり、ファイルの内容をJTextAreaに表示したいだけです。これどうやってするの?
java - JEditorPane内の強調表示
JEditorPane
強調表示する文字列のリストがある場合、テキストの一部を強調表示することはできますか?HTMLタグを使用することはできません(テキストにはいくつかのタグが含まれます)。カットトムを作成するEditorKit
必要がありますか?
ありがとう