Java'da basit bir WYSIWYG RTF editörü geliştiriyorum ve küçük bir sorun yaşıyorum. Stil seçimi geçiş düğmelerini (kalın, italik, altı çizili) kullanıcı metin seçimiyle senkronize edebilmem gerekir. Örneğin, geçerli metin seçimi düzse, kalın, italik ve altı çizili geçiş düğmeleri seçilmez, ancak kullanıcı kalın ve altı çizili bir metin seçtiğinde, kalın ve altı çizili düğmeler seçilir.JTextPane Stil Seçimini Senkronize Et UI Sorun
Şimdi, JTextPane.getInputAttributes()
'un bana istediğim seçim özelliklerini kazandığı konusunda eminim, ancak düzeltme güncellemelerini dinlemeyle ilgili bir sorun var. Sorun şu ki, JTextPane
no'lu ek dosya dinleyicisi, AFTER giriş özniteliği değişikliği gerçekleştiğinde gözüküyor. Yani seçim her zaman bir adım geride. Yani, geçiş düğmeleri güncellenmeden önce metni iki kez seçmeliyim!
önemli kod buradadır:
textPane.addCaretListener(new CaretListener() {
@Override
public void caretUpdate(CaretEvent e) {
syncAttributesWithUI(textPane.getInputAttributes());
}
});
Ve: önceden
private void syncAttributesWithUI(AttributeSet attributes) {
boldButton.setSelected(StyleConstants.isBold(attributes));
italicButton.setSelected(StyleConstants.isItalic(attributes));
underlineButton.setSelected(StyleConstants.isUnderline(attributes));
}
teşekkürler!
Sorunuz mu var? Değilse, bir SSCCE –