सेट करता है जब आप कंटेंट टाइप ("टेक्स्ट/एचटीएमएल") सेट करते हैं तो यह केवल JTextPane.setText() के माध्यम से सेट किए गए पाठ के लिए लागू होता है। शैलियों के माध्यम से जेटीक्स्टपेन में डाला गया अन्य सभी टेक्स्ट सामग्री प्रकार के लिए "प्रतिरक्षा" है।JTextPane के लिए setContentType ("टेक्स्ट/एचटीएमएल") काम नहीं करता है क्योंकि यह
private final String[] messages = {"first msg", "second msg <img src=\"file:src/test/2.png\"/> yeah", "<img src=\"file:src/test/2.png\"/> third msg"};
public TestGUI() throws BadLocationException {
JTextPane textPane = new JTextPane();
textPane.setEditable(false);
textPane.setContentType("text/html");
//Read all the messages
StringBuilder text = new StringBuilder();
for (String msg : messages) {
textext.append(msg).append("<br/>");
}
textPane.setText(text.toString());
//Add new message
StyledDocument styleDoc = textPane.getStyledDocument();
styleDoc.insertString(styleDoc.getLength(), messages[1], null);
JScrollPane scrollPane = new JScrollPane(textPane, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
//add scrollPane to the main window and launch
//...
}
सामान्य तौर पर, मैं एक चैट कि JTextPane का प्रतिनिधित्व करती है है:
यहाँ मैं क्या मतलब है। मुझे सर्वर से संदेश प्राप्त होते हैं, उन्हें संसाधित करते हैं - विशिष्ट मामलों के लिए टेक्स्ट रंग सेट करें, इमेज पथ आदि में स्माइल मार्कर बदलें। सब कुछ HTML की सीमाओं के भीतर किया जाता है। लेकिन जैसा कि उपरोक्त उदाहरण से स्पष्ट रूप से देखा जा सकता है, केवल सेटटेक्स्ट सेटकंटेंट टाइप ("टेक्स्ट/एचटीएमएल") का विषय है और दूसरा भाग, जहां नया संदेश जोड़ा गया है "टेक्स्ट/सादा" (यदि मुझे गलत नहीं है)।
क्या JTextPane में डाले गए सभी डेटा पर "टेक्स्ट/एचटीएमएल" सामग्री प्रकार लागू करना संभव है? इसके बिना, जटिल जटिल एल्गोरिदम के कार्यान्वयन के बिना संदेशों को संसाधित करना लगभग असंभव है।
मुझे सच में लगता है कि मैं अक्षम डेवलपर हूं (इसके बावजूद मैं स्विंग और जीयूआई प्रोग्रामिंग के लिए नया हूं)। कभी-कभी मुझे लगता है कि जावा स्विंग में बहुत अच्छी सुविधाएं हैं और उन्हें खुद को लागू करना चाहिए, लेकिन मेरा अनुभव मुझे ऐसा करने नहीं देता है और यह मुझे बहुत परेशान करता है। आपका संस्करण जोओप एजेन से भी बड़ा है - यदि कोई ऐसा कह सकता है तो यह अधिक लचीला है। – Dragon
एक और पूर्ण उत्तर, स्वीकार करना चाहिए। –
@JoopEggen, (ऑफटॉपिक) वे थोड़ा अलग हैं, लेकिन दोनों अच्छे हैं। मुझे उन्हें पूर्ण संदर्भ में जांचना होगा - यह अब मैं करता हूं :) – Dragon