問題タブ [jtextpane]

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.

0 投票する
2 に答える
3222 参照

java - JTextPane を使用すると、消費されたマウス イベントは引き続きキャレットの更新/選択の更新に伝播します

JTextPane に問題があるようです。JTextPane のアイコン機能が目的に合わないため、JTextPane を拡張して浮動イメージをレンダリングしました。ユーザーが画像をクリックして、特定のイベントを実行できるようにしたい。ただし、画像をクリックすると、evt.consume() を使用しても、キャレットと選択が JTextPane で更新されます。画像と相互作用する一般的なクリックとマウスイベントが、キャレットの位置や選択にまったく影響を与えないようにしたいと思います。関連コード:

私は getMouseListeners を呼び出して、自分のマウス リスナーが配列の最後であることを確認しました。リスナーは最大インデックスから最小インデックスの順に呼び出されることを読みました。マウスクリックイベントがまだキャレットを更新しているのはなぜですか? これはルック アンド フィールの問題ですか?

0 投票する
2 に答える
1195 参照

java - Java HTML 対応コンポーネントでの使用

次の問題があります:

JTextPane を使用して HTML ドキュメントを表示します。

私の HTML テキストには、­ (w3.org では恥ずかしがり屋ですが)ソフト ハイフネーションを作成する機能があります。私の問題は、ハイフネーションが表示されないことです。これらのオプションを使用するための、私が知らない何らかのフラグはありますか?

次の Programm は問題を示します。

私の予想される動作は、テキストが次の行に分割されることです。

最初のブロックのように見えますが、ハイフネーション記号が付いています。

編集: ほとんどのブラウザーで動作しますが、ここでは Web ブラウザーを使用しません。

編集 2: 私は JTextPane を使用していますが、Java がインストールされている HTML レンダリング エンジンを内部的に使用するかどうかはわかりません。

0 投票する
2 に答える
1886 参照

java - JTextPane AttributeSet 値の取得

JTextPaneメソッドを使用する場合insertIcon()、javadoc は次のように述べています。"...This is represented in the associated document as an attribute of one character of content."

挿入したアイコンに関する情報を取得するにはどうすればよいですか? getCharacterAttributes()私はどれだけを試しました"Fetches the character attributes in effect at the current location of the caret, or null."

現在のキャレット位置だけでなく、選択したテキストまたは特定のインデックスですべての属性を検索する方法はありますか?

編集
埋め込みアイコンのファイル名を取得するためにまとめたサンプル コードを次に示します。

0 投票する
2 に答える
606 参照

java - JTextPaneでのスタイル付きテキストのHTMLとしての表示

基本的に、JTextPaneといくつかのスタイリングオプション(太字、斜体、下線、中央/右/左揃えのオプション)を使用して単純なテキストエディターを作成しましたが、HTMLバージョンを表示する簡単な方法があるかどうか疑問に思っています。

私が最終的にやりたいのは、プレーンテキストだけを含む「HTMLとしてエクスポート」タイプのオプションがありますが、スタイル設定ではなくHTMLタグでフォーマットされています。

ありがとう

0 投票する
1 に答える
195 参照

java - JTextPane と XHTMLRenderer: いつ使用するか

HTMLDocument で JTextPane を介して XHTMLRenderer (空飛ぶ円盤) を使用する状況と、その逆の状況はどのような状況ですか? それは主に好みの問題ですか、それともどちらかがより自然な選択である場合もありますか?

0 投票する
1 に答える
1374 参照

java - JColorChooserでテキストの色を設定する

JTextPaneを使用してテキストエディタを作成しようとしていますが、選択したテキストの色を設定できません。これが思い付くことができる最高のものです(しかし、明らかに、機能していません):

それを機能させる方法について何か提案はありますか?それともそれを行うためのより良い方法ですか?

ありがとう

0 投票する
2 に答える
1387 参照

java - JButtonをクリックしてテキストのスタイルを設定した後も選択を続ける

かなりシンプルなテキストエディタを作成していますが、スタイルボタンについて質問があります。テキストを強調表示して[太字]ボタンをクリックすると、テキストは期待どおりに太字になりますが、選択範囲が表示されなくなります。選択範囲の太字を解除したり、斜体にしたり、下線を引いたりすることはできますが、何が選択されているかがわかりません。それで、ボタンをクリックできる設定があるのだろうかと思いますが、選択を続けますか?JButtonの代わりにJMenuItemを試しましたが、それは機能しているように見えましたが、ツールバーの見栄えがかなり悪くなりました。以下のサンプルコード。

どんな助けでも大歓迎です。

0 投票する
1 に答える
1850 参照

java - JEdi​​torPane / TextPaneドキュメントまたはページの読み込みが完了したかどうかを確認するにはどうすればよいですか?

URLをJEditorPaneまたはJTextPaneにロードしようとしていますが、URLは動的に生成されたPHPページです。次に、JavaアプリケーションでPHPページからの出力を処理したいと思います。PHPページは、正しく生成されたことを確認するために使用できる文字列を常に少なくとも1つ出力します。

を使用してページを設定した直後にページを処理しようとすると

JEdi​​torPaneにテキスト/プレーンコンテンツタイプを指定しても、空白のHTMLページが返されます。

これは、以下のメソッドが毎回正しい出力を返すため、PHPページの読み込みが完了していないためだと思います。

現時点では、ページを設定してからSwingタイマーを開始し、200ミリ秒ごとにページに正しく生成された文字列が含まれているかどうかを確認しています。

これは正常に機能します。現在のサーバーのロードとロードされているPHPページの現在の複雑さでは、ループは最初の反復後に停止しますが、それは少し非効率的であるように思われ、ページのロードに数秒かかるかどうかをチェックし続ける必要はありませんサーバーの負荷が高い場合や、より複雑なPHPページの場合。

ページの読み込みが完了したことを確認するためのより良い方法があるかどうか疑問に思っています。

JEdi​​torPane.read(inputStream)メソッドを使用するか、Swingバックグラウンドワーカースレッドでページを設定し、ワーカーのdone()が呼び出されたときにPHPページの出力を処理できるかどうか疑問に思いました。

そして、PHP出力をロードして、エディターペインが表示されないため、エディターペインを使用せずに、動的に生成された出力から文字列に直接読み取るより良い方法はありますか?

これが十分に明確であることを願っています。

ありがとう。

0 投票する
1 に答える
1780 参照

java - JToggleButtonをクリックせずに切り替え、スタイルの設定を解除します

次の形式でテキストにスタイルを追加するためのトグルボタンがいくつかあります。

また、さまざまなスタイリング機能(カラー、左/右/中央揃えなど)もあります。関数を呼び出すと(この場合、基本的に新しいドキュメントを作成したい)、トグルボタンがオフ状態に切り替わり、すべてのスタイルがデフォルトに戻ります。

現在、フレーム名を無題(以前は作業していたドキュメントの名前)に設定し、ペインのテキストを「」に設定しましたが、これにより、前のドキュメントで設定したすべてのスタイルが保持されます。それを行うためのより良い方法はありますか?

ありがとう

0 投票する
1 に答える
2440 参照

java - Jtextpaneをクリックして、意図したとおりに選択されていないポップアップメニュー効果を作成します

JFrameにJTextPaneがあり、JTextPane.setComponentPopupMenuメソッドを介してJTextPaneに割り当てられるポップアップメニューがあります。

JTextPaneに「単語のような」ポップアップ動作を与えたいと思います。つまり、現在のテキスト選択の外側を右クリックすると、カレットは右クリックした場所に再配置され、テキスト選択に影響するメニューオプション(切り取り、コピー、太字など)が無効になります。現在のテキスト選択内で右クリックすると、テキスト選択を有効にするオプションを含むポップアップが表示され、テキスト選択が保持され、カレットは移動しません。

問題は、選択の変更を処理するコードをどこに配置できるかがわからないように見えることです。私は試した:

  • ポップアップが表示される前にトリガーされる「PopupMenuWillBecomeVisible」イベントを使用します。このメソッドに渡されるイベントにはマウスイベント情報が含まれていないため、viewtomodelを使用して選択を変更する方法を見つける方法はありません。私はMouseInfoを使用できましたが、それはせいぜい疑わしいようです。
  • JTextPaneまたはJFrameでMousePressed/MouseReleasedイベントを使用する。どうやら、ポップアップメニューがトリガーされたときにこれらのイベントのどちらも呼び出されません。実際、ポップアップメニューの親コンポーネントが何であるかはまだわかりません。(Windowsでは「MouseReleased」がポップアップトリガーであり、他のシステムでは「MousePressed」がトリガーであることを読みました。両方を試しましたが、どちらも機能しませんでした)。

したがって、問題は、ポップアップメニューが表示される前に呼び出されるコードを配置する場所が見つからないように見えることですが、ポップアップメニューをトリガーしたmouseEventを認識していることだと思います。私はここで何かが欠けているに違いありません。