Swing/NoWrapTextPane のバックアップの現在との差分(No.1)
TITLE:JEditorPaneで長い行を折り返さない
JEditorPaneで長い行を折り返さない
編集者:Terai Atsuhiro~
作成日:2007-09-24
更新日:2021-07-22 (木) 22:11:40
概要
JEditorPane
や、JTextPane
で、行をViewport
の幅で折り返さないよう設定します。
Screenshot
Advertisement
概要
JEditorPaneや、JTextPaneで、行をViewPortの幅で折り返さないよう設定します。 Swing - Disabling word wrap for JTextPaneの投稿をそのまま引用しています。#screenshot
サンプルコード
#spanend
#spanadd
* サンプルコード [#sourcecode]
#spanend
#spanadd
#code(link){{
#spanend
class NoWrapParagraphView extends ParagraphView {
public NoWrapParagraphView(Element elem) {
super(elem);
}
protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r) {
#spanadd
#spanend
@Override protected SizeRequirements calculateMinorAxisRequirements(
int axis, SizeRequirements r) {
SizeRequirements req = super.calculateMinorAxisRequirements(axis, r);
req.minimum = req.preferred;
return req;
}
public int getFlowSpan(int index) {
#spanadd
#spanend
@Override public int getFlowSpan(int index) {
return Integer.MAX_VALUE;
}
}
- &jnlp;
- &jar;
- &zip;
解説
上記のサンプルでは、スパンの必要サイズを計算するcalculateMinorAxisRequirementsメソッドなどをオーバーライドして、行折り返し段落のビュー(ParagraphView)で折り返しが発生しないようなしています。解説
上記のサンプルでは、スパンの必要サイズを計算するcalculateMinorAxisRequirements
メソッドなどをオーバーライドして、行折り返し段落のビュー(ParagraphView
)で折り返しが発生しないように設定しています。
JEditorPaneやJTextPaneといったStyledDocumentをモデルにしているテキストコンポーネントに非常に長い行をペーストした場合、表示が更新されなくなりますが、折り返しできなくしてしまうと多少ましになるようです。
-
JEditorPane
やJTextPane
といったStyledDocument
をモデルにしているテキストコンポーネントに極めて長い行をペーストすると表示が更新されなくなる場合がある- 折り返し不可に設定するとこの動作が緩和される?
-
JTextArea
でも行を極めて長くしてしまうと、カーソルキーの移動などで異常に時間がかかる場合がある- 例えばこのサンプルの
JTextArea
でカーソルを末尾(EOF
)に移動し、一行目(非常に長い行)にUpキーで移動すると発生する - Swing - Long last line in wrappable textarea hangs GUI (bug in java?)
- 例えばこのサンプルの
- 例えば、このサンプルで、カーソルを一番最後に移動し、一行目(非常に長い行)にUp↑キーで移動すると発生する
- -
- Swing - Disabling word wrap for JTextPane
-
BoxView#layout(...)
をオーバーライドして折り返しを不可に設定
-
- Non Wrapping(Wrap) TextPane : TextField : Swing JFC : Java examples (example source code) Organized by topic
-
JTextPane#getScrollableTracksViewportWidth()
をオーバーライドして折り返しを不可に設定
-
参考リンク
- Swing - Disabling word wrap for JTextPane
- Non Wrapping(Wrap) TextPane : TextField : Swing JFC : Java examples (example source code) Organized by topic
参考リンク
- Swing - Disabling word wrap for JTextPane
- Non Wrapping(Wrap) TextPane : TextField : Swing JFC : Java examples (example source code) Organized by topic
- Bug ID: 6502558 AbstractDocument fires event not on Event Dispatch Thread
- JTextPaneを一行に制限してスタイル可能なJTextFieldとして使用する