1

フォントサイズのコンボボックスがあるエディターを開発しています。ユーザーはそれを使用してテキストサイズを変更できます。

また、選択したテキストのサイズを通知し、それに応じてコンボボックスを更新するキャレットリスナーも実装しました。ユーザーが 2 つの異なるサイズのテキストを選択した場合、コンボボックスに空白の値を入力します。しかし、最初のテキストのサイズが得られるため、キャレットリスナーではそれを行うことができません。

例: 私のテキストが「HI」の場合。ここで、H のサイズは 12 で、I のサイズは 22 です。「HI」キャレット リスナーを選択すると、12 または 22 のいずれかの値が返されます。

サンプルコードは次のとおりです。

StyledDocument doc = pane.getStyledDocument();
MutableAttributeSet fontSizeStyle = ((StyledEditorKit)pane.getEditorKit()).getInputAttributes();
int fontSize = StyleConstants.getFontSize(fontSizeStyle);
4

1 に答える 1

2

以下のコードは、Jtextpane で選択されたテキストをループし、各文字のサイズを取得します。

String selectedText = pane.getSelectedText();
int k = pane.getSelectionStart();

for(int i=0; i< selectedText.length(); i++) {
   AttributeSet fontSize = doc.getCharacterElement(k).getAttributes();                       
   System.out.println("fontSize:"+StyleConstants.getFontSize(fontSize));
   k++;
}
于 2013-03-30T07:37:59.957 に答える