問題タブ [styleddocument]
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 - 次の入力の Java styleddocument 変更属性
私は JTextPane を持っており、太字フォントを表すチェックボックスがあります。したがって、チェックボックスがオンになっている場合は、JTextPane に入力したものを太字にする必要があります。JTextPane のフォント全体を変更したくありません。次の文字を太字に設定したいだけです。私はこれを作りました、そしてそれは動作します:
しかし、私はそれが良い考えだとは思わない
試してみましdoc.setCharacterAttributes(doc.getLength(),1, ns, true)
たが、doc.setCharacterAttributes(doc.getLength()-1,1, ns, true)
うまくkeyReleased
いきません。そうするとうまくいきません。つまり、最初に入力したものが表示され、それが変化するのがわかり、速く入力すると一部の文字の属性が変更されません。それで、これを行うためのより良い方法を知っている人はいますか?
java - JTextPane StyledDocument で段落の長さを設定することは可能ですか?
で使用JTextPane
してStyledDocument
いますが、段落の長さを設定できますか? 私の目標は、挿入されるテキストの長さがJTextPane
400px を超え、新しい行に移動することです。
編集:
以下のメソッドを使用して、textPane のスタイルを設定します
以下を使用して、テキストを JTextPane に挿入します。
段落の長さを設定したい。
編集2:
テキストの種類ごとに、異なるスタイルを使用しています。
編集3:
スクロールバーでに追加JTextPane
します。JPanel
java - DefaultStyledDocument のスタイルを修正
StyledDocument
のスタイルをJavaで修正できるかどうか疑問に思っています。私の観察によると、スタイルは前職のスタイルに応じて変化します。
そのため、前の位置のスタイルに影響されることなく、定義したスタイルでコンテンツをキー入力できます。
返信ありがとうございます。
java - JTextPane と正規表現の問題
XML 文字列を含むがJTextPane
あり、XML 開始タグの色を変更したいと考えています。これを行うには、正規表現を使用して開始タグを見つけ、関連するテキスト インデックスの文字属性を選択した色に設定します。これは、次のコードで確認できます。
ただし、問題は、Matcher.start()
とのStyledDocument.setCharacterAttributes()
増分が異なるように見える (StyledDocument
改行文字を無視しているように見える) ため、色付きのテキストがずれてしまうことです。
System.out.println(matcher.group());
while ループ内の a は次の正しい出力を明らかにするため、問題は正規表現自体にはありません。
強制Matcher.start()
しStyledDocument.setCharacterAttributes()
て一貫してインクリメントする方法はありますか、それとも新しい行カウンターを実装する必要がありますか?
編集: Schlagi が示唆したように、all\r\n
をに置き換えても\n
機能しますが、これによりコードが少し混乱し、保守が困難になるのではないかと心配しています。他の提案は大歓迎です!
java - StyledDocument の分割
私は現在、スタイル付きテキストを a で受け取りJTextPane
、同じスタイル付きテキストを編集不可で表示するプログラムを書いていますJTextPane.
。問題は、入力と表示の間で実際にドキュメントを解析したいということです。DefaultStyledDocument
基本的に、フォーマットを維持しながらaを2つのドキュメントに分割できるようにしたいと考えています。これどうやってするの?
SSCE 説明ポイント:
注: Netbeans GUI ビルダーを使用しているため、生成されるコードが長くなります。
基本的に、この例では、フォーマットされたテキストを input に入力しますJTextPane
。次に、書式設定を失うことなく、その書式設定されたテキストを 2 つの出力ペインに分割できるようにしたいと考えています。SCCE では、ユーザーが「出力」ボタンを押すと、データがコピーされ、--
行ごとに分割されます。この例では、存在しないsplit()
方法を使用しましたが、それは要点を捉えていると思います。
これは予想される入力です (この特定の例の場合):
そして、これは期待される出力です:
私は当初、この質問には可能な答えがあると思っていました。しかし、私はそれを試してみましたが、うまくいかないことがわかりました。最後に、スタイリングを維持しながらスタイル付きドキュメントを分割するにはどうすればよいですか。
java - JTextPane のすべての属性を持つコンテンツを取得する方法は?
と がありJTextPane
、の内容(色、テキスト、その他の属性を含む) を別のクラス (変数として)ActionEvent
に保存したいと考えています。後で、の内容を変数のJTextPane
内容と交換したいと思います。JTextPane
私は使用しようとしました:
と
しかし、どちらも機能しませんでした。
全体を手放すことを考えましJTextPane
たが、どうやら他のクラスでペインがまだ更新されているようです...
編集:私はコンテンツを(後で)JTextPane
再び表示するためにのみ使用します。ファイルなどに保存するつもりはありません。
java - 数値と文字列に使用する正しい正規表現はどれですか?
シンプルなIDEを作成し、JTextPaneに基づいて色を付けようとしています
- 文字列 (" ")
- コメント (// および /* */)
- キーワード (public、int ...)
- 数値 (69 のような整数と 1.5 のような浮動小数点数)
ソース コードに色を付ける方法は、StyledDocument 内の insertString メソッドと removeString メソッドを上書きすることです。
多くのテストの後、コメントとキーワードを完成させました。
Q1: 文字列の色付けに関しては、次の正規表現に基づいて文字列に色を付けています。
これは、コード内に "\ がある特定の種類の文字列が文字列に含まれている場合を除き、99% の時間で機能します。これにより、カラー コーディング全体が台無しになります。正規表現を修正してエラーを修正できますか?
Q2: Integers と Decimal の色付けについては、次の正規表現に基づいて数値が検出されます。
正規表現 "\d+" を使用することで、浮動小数点数ではなく整数のみを処理しています。また、別の文字列の一部である整数が一致しますが、これは IDE 内で必要なものではありません。整数の色分けに使用する正しい式はどれですか?
以下は、出力のスクリーンショットです。
事前に助けてくれてありがとう!