フォントサイズのコンボボックスがあるエディターを開発しています。ユーザーはそれを使用してテキストサイズを変更できます。
また、選択したテキストのサイズを通知し、それに応じてコンボボックスを更新するキャレットリスナーも実装しました。ユーザーが 2 つの異なるサイズのテキストを選択した場合、コンボボックスに空白の値を入力します。しかし、最初のテキストのサイズが得られるため、キャレットリスナーではそれを行うことができません。
例: 私のテキストが「HI」の場合。ここで、H のサイズは 12 で、I のサイズは 22 です。「HI」キャレット リスナーを選択すると、12 または 22 のいずれかの値が返されます。
サンプルコードは次のとおりです。
StyledDocument doc = pane.getStyledDocument();
MutableAttributeSet fontSizeStyle = ((StyledEditorKit)pane.getEditorKit()).getInputAttributes();
int fontSize = StyleConstants.getFontSize(fontSizeStyle);