0

私のテキスト エディターでは、JComboBox と StyledEditorKit を使用してテキストを変更するオプションを提供しています。唯一の問題は、コンボ ボックスでサイズを選択すると (選択したテキストが変更されて)、テキストの新しい選択を選択すると、実際のサイズに関係なく、コンボ ボックスの値が前の選択と同じままになることです。サイズ。

この投稿を見ましたが、与えられた答えがよくわかりません。

フォントを変更するために使用するコードは次のとおりです

JComboBox<?> fontSizeCombo = new JComboBox<Object>(sizes.toArray());
fontSizeCombo.setFocusable(false);
fontSizeCombo.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
          new StyledEditorKit.FontSizeAction("myaction-", (int) ((JComboBox<?>) e.getSource()).getSelectedItem()).actionPerformed(e);
      }
});

「サイズ」には、8 から 112 までの範囲の int が 4 刻みで含まれているだけです。

どんな助けでも大歓迎です。

4

2 に答える 2

3

言及された投稿は、エディターに CaretListener を追加する必要があることを意味します。sselection が変更されると、キャレットの位置が更新され、リスナーが呼び出されます。次に、キットの InputAttributes が更新されます。属性にアクセスして、現在のキャレット位置 (選択) のフォント サイズを取得できます。

于 2012-09-03T08:50:09.583 に答える
1

コンボ ボックスの更新を呼び出すキャレット リスナーをテキスト ペインに追加します。

于 2012-09-03T08:46:54.613 に答える