Java Drawing DrawTop

Language

JP  US  UK

 

フォントスタイル

 H. Jyounishi, Tokyo Japan
 

Frame (Index), No frame                 version:0.3(latest)  

要旨:属性つき文字列を扱うテキストエディタにはテキストボックス内のフォント属性を設定・操作する機能、属性付き文字列をテキストボックスの境界で折り返して行に割り当てる機能が必要である。
使用する主なJava SEのクラス::java.awt.font.TextAttribute, java.text.AttributedString, java.text.AttributedCharacterIterator
このページで>説明するクラス: FontStyle, AttributedStringUtil, AttributedInterval, Interval, CommittedTextContainer

1. FontStyleクラス 戻る=>page top

フォントファミリィ、フォントサイズ、イタリック、Bold、アンダーライン、上付き/下付き、 フォントの色などフォント属性を表すクラス。
テキストにフォント属性を設定するメソッド, テキストから属性を取り出すメソッド、 フォントメニューに属性を設定するメソッド、 フォントメニューから属性を取得するメソッドなどからなる。

=> java.awt.font.TextAttribute, テキスト属性をフォントメニューに反映
フィールド 説明
fontFamily public String fontFamily
フォントファミリ名。
bold private int bold
Plainのとき0、Boldのとき1。
italic private int italic
Regularのとき0、Italicのとき1。
fontSize public int fontSize
フォントサイズ。
underLine private int undetLine
アンダーラインオンのときTextAttribute.UNDERLINE_ON、オフのとき-1。
superScript private int superScript
上付き/下付き。上付のときTextAttribute.SUPERSCRIPT_SUPER(1~7)、 下付きのときTextAttribute.SUPERSCRIPT_SUB(-1~-7)。 0は上付き/下付きなし。
fontColor public Color fontColor
フォントの色
UNDEF_String public static final String UNDEF_String="UNDEF”
文字列で表される属性が指定されていない場合はこの文字列を設定する。
UNDEF_int public static final int UNDEF_int=-99
整数値で表される属性が指定されていない場合はこの値を設定する。 TextAttribute.UNDERLINE_OFFが-1、TextAttribute.SUPERSCRIPTが少なくとも-7~7まで使うので、 思い切り小さく-99をUNDEF_intにする。

メソッド 説明
コンストラクタ public FontStyle(String fontFamily, int bold, int italic, int fontSize, int underLine, int superScript, Color fontColor)
コンストラクタの引数をフィールド変数に設定。
setFontFamily public void setFontFamily(String fontFamily)
フィールド変数fontFamilyに引数の値を設定。
getFontFamily public String getFontFamily()
フィールド変数fontFamilyを返す。
setBold public void setBold(int bold)
フィールド変数boldに引数の値を設定。
getBold public int getBold()
フィールド変数boldを返す。
setItalic public void setItalic(int italic)
フィールド変数italicに引数の値を設定。
getItalic public int getItalic()
フィールド変数italicを返す。
setFontSize public void setFontSize(int fontSize)
フィールド変数fontSiseに引数の値を設定。
getFontSize public int getFontSize()
フィールド変数fontSizeを返す。
setUnderLine public void setUnderLine(int underLine)
フィールド変数underLineに引数の値を設定。
getUnderLine public int getUnderLine()
フィールド変数underLineを返す。
setSuperScript public void setSuperScript(int superScript)
フィールド変数superScriptに引数の値を設定。
getSuperScript public int getSuperScript()
フィールド変数superScriptを返す。
setFontColor public void setFontColor(Color fontColor)
フィールド変数fontColorに引数の値を設定。
getFontColor public int getFontColor()
フィールド変数fontColorを返す。
setTo public AttributedCharacterIterator setTo(AttributedCharacterIterator iterator, int selStart, int selEnd)
このFontStyleオブジェクトのフォント属性をiteratorの指定区間[selStart, selEnd]に設定する。
属性=>java.awt.font.TextAttributeの属性
∙ Font familyの設定
TextAttribute.FAMILYキーを使う。
∙ Bold, Italic, Font sizeの設定

Plain/Bold指定はTextAttribute.WEIGHTキーを使う。BoldのときはTextAttribute.WEIGHT_BOLDを値として設定。Italic指定は TextAttribute.POSTUREキーを使う。属性値はTextAttribute.POSTURE_OBLIQUEを指定。

∙ Font sizeの設定
TextAttribute.SIZEキーを使う。
∙ UnderLineの設定

TextAttribute.UNDERLINEキーを使う。
AttributedStringUtil.addAttribute(TextAttribute.UNDERLINE, this.getUnderLine(), selStart, selEnd)

∙ SuperScriptの設定

TextAttribute.SUPERSCRIPTキーを使う。
[selStart, selEnd]区間のTextAttribute.Font属性を削除した後に次のステップを実行。AttributedStringUtil.addAttribute(TextAttribute.SUPERSCRIPT, setScript, selStart, selEnd)

∙ Font colorの設定
TextAttribute.FOREGROUNDキーを使う。
toString public String toString()
このFontStyleオブジェクトの文字列表現を返す。
getDefaultFontStyle
(static)
public static FontStyle getDefaultFontStyle()
デフォールトのFontStyleを返す。
fontFamily="Dialog", fontSize=12, bold=0, italic=0, unserLine=-1, superScript=0, fontColor=Color.black
getFontStyleFromMenu
(static)
public static FontStyle getFontStyleFromMenu()
Font menu(下図)の設定状態を読み取ってFontStyleオブジェクトを返す。
setFontStyleToMenu
(static)
public static FontStyle setFontStyleToMenu(TextBox textBox)
TextBox内部をクリックしてキャレットの位置を変更した場合、キャレットの前のテキストの属性をメニューに反映させる。またテキストを選択した場合、そのテキストが共通属性を持てば、それをメニューに反映させる。
ここでメニューとは、ツールバーのFontボタンを押したときに現れるFont menuのことである。

メニューに反映させる操作は、例えばBold属性ならばメニューのBold設定ボタンを"selected"の状態でで表示することである。フォントの色属性ならばColor Chooserのプレビューにその色を表示する。
getCommonFontStyleメソッドで、引数textのstart, end区間から共通属性を設定したFontStyleオブジェクトを作成する。作成したFontStyleオブジェクトは戻り値で返す。
FontMenuへの設定は下ののupdateFontMenuメソッドで行う。
setFontStyleToMenu (static) public static FontStyle setFontStyleToMenu(ShapeContainer[] containers)
アクティブ(テキスト入力∙ 編集可能)なTextBoxがなく、containersで指定された図形(グループを含む)に含まれる全てのtextBoxのテキストに共通属性があれば、その属性をメニュー(font menu)に反映させる。
getCommonFontStyleメソッドで、 引数textのstart, end区間から共通属性を設定したFontStyleオブジェクトを作成する。 作成したFontStyleオブジェクトは戻り値で返す。
FontMenuへの設定はupdateFontMenuメソッドで行う。
updateFontMenu
(static)
private static void updateFontMenu(FontStyle fontStyle)
MenuUtil.getMenuComponentで メニューのフォント属性設定ボタン、コンボボックス、カラーチューザーのオブジェクトを取得し、 そのオブジェクトのメソッドを使って設定を行う。
∙ ボタン:seteSelectedメソッド (Bold, Italic, UnderLine, SuperScript)
∙ コンボボックス:ComboBox.setSelectedItem (Font family、Font size)
∙ カラーチューザー: CustomColorChooserDialog.setPreviewColor (Font color)
参照=>テキスト属性をフォントメニューに反映
getCommonFontStyle
(static)
private static FontStyle getCommonFontStyle(AttributedCharacterIterator text, int start, int end)
引数:
text - 属性つき文字列
start - フォントスタイルを取り出す先頭位置。
end - フォントスタイルを取り出す最終位置。
戻り値:
引数textのstart, end区間から共通属性を設定したFontStyleオブジェクトを作成して返す。
処理:
AttributedStringUtil.getAttributedIntervalsメソッド で引数start, end間に設定されているフォント関連属性を取り出す。
取りだした属性が1種類ならば共通属性あり、異なる属性が複数あれば共通属性なしとして、 FontStyleオブジェクトに設定し、そのFontStyleオブジェクトを戻り値として返す。
=> テキスト属性をフォントメニューに反映
getCommonFontStyle (static) private static FontStyle getCommonFontStyle(TextBox[] textBoxes)
引数textBoxesに含まれる全てのテキストから共通属性を設定したFontStyleオブジェクトを作成する。
getFontStyleAt
(static)
public static FontStyle getFontStyleAt(AttributedCharacterIterator text, int position)
引数:
text - 属性つき文字列
position - フォントスタイルを取り出す位置。
戻り値:
positionの位置からフォント属性を取得しFontStyleオブジェクトを返す。
処理:
このメソッドはTextBox.insertTextメソッドから呼ばれる。 positionのひとつ前の文字に設定されている属性を取り出す。属性の取り出しはつぎのルールで行う。
(1)もしpositionの前の文字が\n(改行)ならば、ひとつ文字をチェックし、\nではない文字の属性を取得する。 ひとつ文字をチェックする処理は\nではない文字が見つかるまで繰り返し実行する。
(2)position=0の場合(先頭位置)、後続する文字をチェックする。後続する文字が\nの場合、 さらにひとつ後の文字をチェックする。
(3)もし属性の設定されている文字が見つからない場合、 FontStyle.getDefaultFontStyleメソッドで取得した デフォールト値を設定したFontStyleオブジェクトを返す。
isFontStyle public static boolean isFontStyle(AttributedCharacterIterator text, int start, int end)
パラメータtextのstart, end区間にFontStyleが設定されていればtrueを返す。
isDefaultFontStyle public static boolean isDefaultFontStyle(AttributedCharacterIterator text, int start, int end)
パラメータtextのstart, end区間のフォントがデフォールトフォントならばtrueを返す。

: テキスト属性をフォントメニューに反映 戻る=>page top

フォントメニューの外観を変える。例えば図(a)の選択文字列(mtDNA)の属性はbold, italicなのでフォントメニューの対応するボタンを選択状態(影付け)にする。


Font menu

Font menu

図(a) 選択文字列の属性bold, italicを
フォントメニューに反映


図(b)テキストカーソル(赤い縦線)の前の文字属性superscriptを
フォントメニューに反映


: java.awt.font.TextAttribute (“JavaTM Platform, Standard Edition 6. API 仕様”からの抜粋) 戻る=>page top
java.awt.font.TextAttribute属性の概要
キー 値の型 主な定数 デフォルト値
FAMILY String Font DIALOG、DIALOG_INPUT、SERIF、SANS_SERIF、および MONOSPACED を参照 「Default」(プラットフォームのデフォルトを使用する)
WEIGHT Number WEIGHT_REGULAR、WEIGHT_BOLD WEIGHT_REGULAR
WIDTH Number WIDTH_CONDENSED、WIDTH_REGULAR、
WIDTH_EXTENDED
WIDTH_REGULAR
POSTURE Number POSTURE_REGULAR、POSTURE_OBLIQUE POSTURE_REGULAR
SIZE Number なし 12.0
TRANSFORM TransformAttribute TransformAttribute IDENTITYを参照 TransformAttribute.IDENTITY
SUPERSCRIPT Integer SUPERSCRIPT_SUPER(上付き) 1~7
SUPERSCRIPT_SUB(下付き) -1~-7
0 (標準のグリフとメトリックスを使用する)
FONT Font なし null (フォントの解決をオーバーライドしない)
CHAR_REPLACEMENT GraphicAttribute なし null (フォントのグリフを使用してテキストを描画する)
FOREGROUND Paint なし null (現在のグラフィックスのペイントを使用する)
BACKGROUND Paint なし null (バックグラウンドを描画しない)
UNDERLINE Integer UNDERLINE_ON -1 (下線を描画しない)
STRIKETHROUGH Boolean STRIKETHROUGH_ON false (取り消し線を描画しない)
RUN_DIRECTION Boolean RUN_DIRECTION_LTR
RUN_DIRECTION_RTL
null (標準のデフォルトを使用する)
BIDI_EMBEDDING Integer なし 0 (基本の行方向を使用する)
JUSTIFICATION Number JUSTIFICATION_FULL JUSTIFICATION_FULL
INPUT_METHOD_HIGHLIGHT InputMethodHighlight、Annotation (クラスを参照) null (インプットハイライトを適用しない)
INPUT_METHOD_UNDERLINE Integer UNDERLINE_LOW_ONE_PIXEL、
UNDERLINE_LOW_TWO_PIXEL
-1 (下線を描画しない)
SWAP_COLORS Boolean SWAP_COLORS_ON false (色を交換しない)
NUMERIC_SHAPING NumericShaper なし null (数字の形状決定を行わない)
KERNING Integer KERNING_ON 0 (カーニングを要求しない)
LIGATURES Integer LIGATURES_ON 0 (オプション合字を作成しない)
TRACKING Number TRACKING_LOOSE、TRACKING_TIGHT 0 (トラッキングを追加しない)


2. AttributedStringUtil   戻る=>page top

Javaの属性つき文字列(AttributedString)を扱うクラスは、java.text.AttributedStringクラス、 java.text.AttributedCharacterIteratorインターフェイスくらいで、 自由にハンドリングするには機能が不足している。AttributedStringUtilクラスはこの機能不足を補うために用意した。
java.text.AttributedStringクラスは「属性つき文字列」なので、Stringデータと、 複数の(属性、区間)の組で表現できるはずである。AttributedStringUtilクラスは、 AttributedStringを分解して属性を取り出すメソッドと、属性設定を行うメソッド、 および外部から使うためのstaticなサービスメソッドを幾つか提供する。

See 文字列属性=> TextAttribute属性
(属性、区間)の組はAttributedIntervalクラスで表す。
フィールド 説明
iterator AttributedCharacterIterator iterator
AttributedCharacterIterator形式の属性つき文字列。
arrayList ArrayList arrayList
属性と区間を組にしたAttributedIntervalオブジェクトを格納する。

メソッド 説明
コンストラクタ public AttributedStringUtil(AttributedCharacterIterator iterator)
・iteratorをフィールド変数に設定。
・getAttributedIntervalListメソッドを呼んで、AttributedStringを分解してその属性をarrayListに格納する。
rangeError private boolean rangeError(int start, int end, String errMessage)
引数start, endがフィールド変数iteratorのテキスト開始インデックス、終了インデックスに範囲内にあるか否かをチェックする。もしなければエラーメッセージを出力し、trueを返す。
getBeginIndex public int getBeginIndex()
フィールド変数iteratorがnullならば-1を返す。nullでなければテキストの開始インデックスを返す。
getEndIndex public int getEndIndex()
フィールド変数iteratorがnullならば-1を返す。nullでなければテキストの終了インデックスを返す。
setAttributedString public void setAttributedString(AttributedCharacterIterator iterator)
コンストラクタと同じ処理を実行する。
createAttributedIntervalList private ArrayList createAttributedIntervalList(AttributedCharacterIterator iterator)
引数:
iterator - 属性つきテキスト (styled text).
処理:
フィールド変数arrayListに設定するArrayListを作成する。
ArrayListに格納するオブジェクトはAttributedIntervalである。
java.text.AttributedCharacterIterator.getAllAttributeKeysで設定されている属性のキーを取り出し、 このクラスのcreateAttributedIntervalsメソッドでAttributedIntervalを作成する。
<Code>
private AttributedInterval[] createAttributedIntervalList(AttributedCharacterIterator.Attribute key){
Vector vector=new Vector();
Object value;
char c=iterator.first();
while(c!=CharacterIterator.DONE) {
int runStart=iterator.getRunStart(key);
int runLimit=iterator.getRunLimit(key);
value=iterator.getAttribute(key);
if( value!=null) {
AttributedInterval attribInterval=new AttributedInterval(runStart, runLimit,
key, value);
vector.add(attribInterval);
}
c=iterator.setIndex(runLimit);
} //end of while

AttributedInterval[] intervals=new AttributedInterval[vector.size()];
for(int i=0;i<vector.size();i++){
intervals[i]=(AttributedInterval)vector.get(i);
}
return intervals;
}
createAttributedIntervals
private AttributedInterval[] createAttributedIntervals(AttributedCharacterIterator.Attribute key, AttributedCharacterIterator iterator)
引数:
key - TextAttributeのキー
iterator - 属性つきテキスト (styled text).
戻り値:
AttributedIntervalオブジェクトの配列
処理:
ひとつの属性キーを指定してAttributedIntervalオブジェクトを作成する。 属性が飛び飛びに設定されていたり、属性キーに対して属性値の異なる区間が存在したりするので、 作成されるAttributedIntervalは一般に複数個作成する。
AttributedCharacterIteratorのgetRunStart、getRunLimitメソッドで属性の設定を取り出し、 getAttribute(key)メソッドでキーの値(属性値)を取り出す。
getString public String getString()
フィールド変数iteratorに設定されているAttributedCharacterIteratorからStringデータを返す。
getString public String getString(int start, int end)
フィールド変数iteratorに設定されているAttributedCharacterIteratorからstart,end区間のStringデータを返す。
getAttributedString public AttributedString getAttributedString()
フィールド変数iteratorからStringを取り出し、 それにフィールド変数arrayListに格納されている属性を設定してjava.text.AttributedStringを返す。
getAttributedSubString public AttributedString getAttributedSubString(int start, int end)
フィールド変数iteratorからStringを取り出し、それにthis.arrayListの属性を設定して java.text.AttributedStringを返す。取り出す区間を指定する。
getTextLayoutString public AttributedString getTextLayoutString(int start, int end, String escapeChar,
String replacChar)

このメソッドはLineBreaker.createMultipleLinesメソッドから呼ばれる。上のgetAttributedSubStringメソッドと処理はほとんど同じ。異なる点は引数escapeCharをreplacreCharを置き換える処理を追加している点。
escapeCharは"\n" (Line feed)でreplacreCharは" " (スペース)または"↲"である。
getAttributedIntervals public AttributedInterval[] getAttributedIntervals()
コンストラクタで作成したAttributedIntervalリストを配列に変換して返す。
該当するAttributedInterval区間がないときは長さ0の配列を返す。
getAttributedIntervals public AttributedInterval[] getAttributedIntervals(int start, int end)
引数:
start, end - iteratorの範囲を指定。
Returns:
AttributedIntervalオブジェクトの配列。
処理:
区間を指定してAttributedIntervalリストを配列に変換して返す。
該当するAttributedInterval区間がないときは長さ0の配列を返す。
getAttributedIntervals public AttributedInterval[] getAttributedIntervals(AttributedCharacterIterator.Attribute key, int start, int end)
引数:
key - 属性キー。
start, end - iteratorの範囲
Returns:
AttributedIntervalオブジェクトの配列。
処理:
属性キーと区間を指定してAttributedIntervalを取得する。
該当するAttributedInterval区間がないときは長さ0の配列を返す。
addAttribute public void addAttribute(AttributedCharacterIterator.Attribute key, Object value, int start, int end)
引数:
key - 属性キー。
value - 属性値。
start, end - iteratorの範囲
処理:
属性キーを指定して属性値を指定区間に設定する。
(注)既に設定されている属性キーで新しい属性値を設定すると、 java.text.AttributedStringは新しい属性値で置き換えてくれる。区間を指定すればその区間だけ更新。
removeAttribute public void removeAttribute(AttributedCharacterIterator.Attribute key, int start, int end)
引数:
key - 削除される属性キー。
start, end - iteratorの範囲
処理:
[start, end]区間で指定属性キーの属性値を削除する。
java.text.AttributedStringのメソッドには属性値を削除するメソッドはないので、 元のStringデータにarrayListに格納してあるキーの属性を設定しなおす。 この際、引数で指定されたキーの属性は設定しない。
removeAttribute public void removeAttribute(AttributedCharacterIterator.Attribute key)
引数:
key - 削除される属性キー。
処理:
指定属性キーの属性値を削除する。
hasAttribute public boolean hasAttribute(AttributedCharacterIterator.Attribute key)
指定された属性キーで属性値は設定されているか否かを問い合わせる。
toString public String toString()
文字列表現を返す。
getString
(static)
public static String getString(AttributedCharacterIterator iterator)
文字列を返す。
getAttributedString
(static)
public static AttributedString getAttributedString(AttributedCharacterIterator iterator)
属性付き文字列を返す。
createCompositeText
(static)
public static AttributedCharacterIterator createCompositeText(AttributedCharacterIterator iterator1, AttributedCharacterIterator iterator2, int insertionPosition, boolean highLight)
引数:
iterator1にiterator2をinsertionPositionの位置で挿入。
highLight

highLight=falseならばTextAttribute.INPUT_METHOD_HIGHLIGHT属性は削除する。 highLight=trueならば挿入文字列にINPUT_METHOD_HIGHLIGHT属性を設定する。

INPUT_METHOD_HIGHLIGHT属性以外の属性値はiterator1, iterator2とも保存される。
処理:
AttributedStringUtilでiterator1、iterator2を分解し、 Stringデータレベルで文字列を合成し、それにiterator1、iterator2の属性を設定しなおす。


3. AttributedIntervalクラス 戻る=>page top
属性の設定された区間を表すクラス。
フィールド 説明
start protected int start
文字列区間の開始位置。1文字目の手前が0、1文字目の後で2文字目の手前が1、...とカウントする。
end protected int end
文字列区間の終了位置。区間に属する最後の文字の後。先頭から数えた文字数と同じ。
key protected AttributedCharacterIterator.Attribute key
属性キー
value protected Object value
属性値

メソッド 説明
コンストラクタ public AttributedInterval(int start, int end, AttributedCharacterIterator.Attribute key, Object value)
引数の値をフィールド変数に設定する。
getStart public int getStart()
フィールド変数startを返す。
getEnd public int getEnd()
フィールド変数endを返す。
getKey public AttributedCharacterIterator.Attribute getKey()
フィールド変数keyを返す。
getValue public Object getValue()
フィールド変数valueを返す。
clone public Object clone()
クローンを返す。
toString public String toString()
このオブジェクトの文字列表現を返す。


4. Intervalクラス 戻る=>page top
文字列の区間の演算を行う。
フィールド 説明
start public int start:区間の開始
end public int end:区間の終了

メソッド 説明
コンストラクタ public Interval(int start, int end)
引数をフィールド変数に設定する。
getStart public int getStart()
フィールド変数startを返す。
getEnd public int getEnd()
フィールド変数endを返す。
length public int length()
区間の長さ(this.end-this.start)を返す
toString public String toString()
区間の文字列表現を返す。
add
(static)
public static Interval[] add(Interval interval, Interval addInterval)
intervalにaddIntervalを加えた区間列を返す。区間の和集合を計算する。
sub
(static)
public static Interval[] sub(Interval interval, Interval subInterval)
intervalからsubIntervalを引いた区間列を返す。
intersection
(static)
public static Interval[] intersection(Interval interval, Interval multInterval)
次のmultと同じ。
del
(static)
public static Interval[] del(Interval interval, Interval delInterval)
開始がinsertionIndexn位置で長さinsertionLengthの区間を削除したとき、 intervalがどう変化するかを計算する。
考え方はinsertと同じ。


5. CommittedTextContainerクラス 戻る=>page top
public class CommittedTextContainer
・textBoxで使われ、確定テキストを管理するコンテナー。
・文字列をコンテナーに追加する、コンテナーから削除する。
フィールド 説明
committedText private AttributedCharacterIterator committedText
確定テキスト
DefaultFont private final Font DefaultFont=new Font(Font.DIALOG, Font.PLAIN, 12)
属性設定前のデフォールトフォント

メソッド 説明
getCommittedText public AttributedCharacterIterator getCommittedText()
フィールド変数committedTextを返す。
setCommittedText public void setCommittedText(AttributedCharacterIterator committedText)
フィールド変数committedTextに引数の値を設定する。
TextAttribute.INPUT_METHOD_HIGHLIGHT属性が設定されていれば削除する。
getBeginIndex public int getBeginIndex() フィールド変数committedTextの先頭文字indexを返す。
getEndIndex public int getEndIndex()
フィールド変数committedTextの最後の文字のindex。文字数と同じ。
getString public String getString()
フィールド変数committedText からStringデータを取り出して返す。
getString public String getString(int start, int end)
フィールド変数committedText から[start, end]間のStringデータを取り出して返す。
getAttributedString public AttributedString getAttributedString()
フィールド変数committedText をAttributedStringに変換して返す。
getAttributedSubString public AttributedString getAttributedSubString(int start, int end)
フィールド変数committedText の[start, end]間をAttributedStringに変換して返す。
getDisplayText public AttributedCharacterIterator getDisplayText(int insertionPosition, AttributedCharacterIterator composedText)
引数:
insertionPosition - 挿入位置
composedText - Input Method Frameworkから渡される未確定テキスト。
処理:
composedText(未確定テキスト)をフィールド変数committedText(確定テキスト)の insertionPosition位置に挿入して合成した属性つき文字列を返す。
属性つきテキストの合成はAttributedStringUtil.createCompositeTextで行う。
insertText public void insertText(int insertionPosition, AttributedCharacterIterator insertString, boolean copyAttributes)
・committedTextのinsertionPositionからstringを挿入する。

copyAttributes=trueならば、挿入位置の手前の文字列の属性を挿入文字列にコピーする。 この引数は、AttributedStringUtil.createCompositeTextの第4引数copyAttributesに渡す。

・committedText のTextAttribute.INPUT_METHOD_HIGHLIGHT属性は削除。
・挿入文字列からTextAttribute.LANGUAGE, READING, INPUT_METHOD_SEGMENT属性を削除する。
・挿入文字列に次のsetDefaultFontAttributeでフィールド変数DefaultFontの属性を設定する。
AttributedStringUtil.createCompositeTextで committedTextに文字列を挿入して合成文字列を作成する。
(注) 属性設定はAttributedStringUtil.addAttributeメソッドを使う。
deleteText public void deleteText(int delStart, int delEnd)
・committedTextから文字を削除する。
getSerializable
AttributedString
public SerializableAttributedString getSerializableAttributedString()
AttributedStringのファイル書き込み用、cut and paste用のデータを作成する。
setSerializable
AttributedString
public void setSerializableAttributedString(SerializableAttributedString data)
ファイル書き込み用、cut and paste用のAttributedStringDataデータをから AttributedStringを作成しAttributedStringContainerのcommittedTextにセットする。



Copyright (c) 2009-2013
All other trademarks are property of their respective owners.