2012-09-03 5 views
0

텍스트 편집기에서 JComboBox 및 StyledEditorKit을 통해 텍스트를 변경하는 옵션을 제공합니다. 유일한 문제는 콤보 상자에서 크기를 선택하고 선택한 텍스트를 변경 한 다음 새로운 텍스트 선택을 선택하면 콤보 상자의 값이 실제 선택 항목과 관계없이 이전 선택 항목과 동일하게 유지된다는 것입니다 크기.JTextPane에서 선택한 텍스트의 글꼴 크기 가져 오기

나는 this 게시물을 보았지만, 주어진 답을 정말로 이해하지 못합니다.

가 여기에 내가 글꼴을

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); 
     } 
}); 

"크기"로 변경하는 데 사용하는 코드를 그냥 대단히 감사 4.

어떤 도움의 단위로 8에서 112까지의 int가 포함되어 있습니다.

+2

[SSCCE] (http://sscce.org/) – mKorbel

답변

3

위의 게시물은 편집기에 CaretListener를 추가해야 함을 의미합니다. sselection이 변경되면 (자), caret의 위치가 갱신되어 청취자가 불려갑니다. 그런 다음 키트의 InputAttributes가 업데이트됩니다. 속성에 액세스하여 현재 캐럿 위치 (선택)의 글꼴 크기를 가져올 수 있습니다.

+0

좋아요, 알았어. 그렇게하면 "크기 = 24"또는 크기가 무엇이든 문자열이 반환됩니다. ComboBox 값을 24가 아닌 "크기 = 24"로 설정하므로 사용할 수 없습니다. 어떻게 해결할 수 있습니까? –

+0

SSCCE 게시 – StanislavL

1

콤보 상자의 업데이트를 호출하는 텍스트 창에 캐럿 수신기를 추가하십시오.

관련 문제