मैं जावा में एक साधारण WYSIWYG RTF संपादक विकसित कर रहा हूं और एक छोटा मुद्दा है। मुझे उपयोगकर्ताओं के चयन चयन में स्टाइल चयन टॉगल बटन (जैसे बोल्ड, इटैलिक, रेखांकित) को सिंक्रनाइज़ करने में सक्षम होना चाहिए। उदाहरण के लिए, यदि वर्तमान पाठ चयन सादा है, बोल्ड, इटैलिक और रेखांकित टॉगल बटन चयनित नहीं हैं, लेकिन जब उपयोगकर्ता बोल्ड और रेखांकित कुछ पाठ का चयन करता है, तो बोल्ड और रेखांकित टॉगल बटन चुने जाते हैं।JTextPane सिंक्रनाइज़ स्टाइल चयन UI समस्या
अब मुझे पूरा यकीन है कि JTextPane.getInputAttributes()
मुझे चयन गुण प्राप्त करता है लेकिन मुझे कैरेट अपडेट ईवेंट सुनने के साथ कोई समस्या है। मुद्दा यह है कि JTextPane
से जुड़े कैरेट श्रोता को इनपुट विशेषता परिवर्तन होने के बाद कहा जाता है। तो चयन हमेशा एक कदम पीछे है। यही है, टॉगल बटन अपडेट होने से पहले मुझे दो बार टेक्स्ट का चयन करना होगा!
महत्वपूर्ण कोड यहाँ है:
textPane.addCaretListener(new CaretListener() {
@Override
public void caretUpdate(CaretEvent e) {
syncAttributesWithUI(textPane.getInputAttributes());
}
});
और:
private void syncAttributesWithUI(AttributeSet attributes) {
boldButton.setSelected(StyleConstants.isBold(attributes));
italicButton.setSelected(StyleConstants.isItalic(attributes));
underlineButton.setSelected(StyleConstants.isUnderline(attributes));
}
अग्रिम धन्यवाद!
क्या आपके प्रश्न का उत्तर दिया गया है? यदि नहीं, तो एक एसएससीसीई –