2012-02-04 27 views
13

में स्टाइलिंग टेक्स्ट मूल रूप से, मेरे पास कुछ टेक्स्ट रखने के लिए एक JTextPane है जिसे मैं शैली बनाना चाहता हूं। JTextArea मेरे लिए उपयोग करने के लिए बेहतर होगा लेकिन मुझे बताया गया है कि आप इन में टेक्स्ट शैली नहीं बना सकते?एक JTextArea या JTextPane

हालांकि, JTextPane ठीक से शैली प्रतीत नहीं होता है। उदाहरण के लिए, निम्न कोड बस HTML के साथ दिया जाता है शामिल हैं:

public static void main(String[] args) { 
    JFrame j = new JFrame("Hello!"); 
    j.setSize(200,200); 
    JTextPane k = new JTextPane(); 
    k.setText("<html><strong>Hey!</strong></html>"); 
    j.add(k); 
    j.setVisible(true); 
} 

मैं सिर्फ एक JTextPane में कुछ पाठ शैली जब एक यूजर इंटरफेस के साथ सूचना का आदान प्रदान सक्षम होना चाहते हैं, लेकिन अब तक, यह सिर्फ रिटर्न अभी भी HTML के साथ स्ट्रिंग! मदद!

उत्तर

21

आप JTextPane तो आप JTextPane#setContentType("text/html"); के लिए सेट करने के लिए में Html सामग्री diplaying चाहते हैं, उदाहरण के here

संपादित करें:

JEditorPanes/JTextPanes के लिए वहाँ लागू StyledDocument, MutableAttributeSet द्वारा और अनुकूलित Highlighte आर के साथ एक और तरीका है , उदाहरण here

एमएम Html syntax

का उपयोग किए बिना है 10
6

जावा को पता है कि यह setContentType विधि का उपयोग कर HTML होगा।

k.setContentType("text/html"); 
3

मैं एक देखो और महसूस (मादक) का उपयोग करें और बुला setContentType("text/html") दिखाया गया फॉन्ट के साथ समस्या है। मैं फोन करके इसे हल:

textPane.putClientProperty(JTextPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE); 

एक अन्य विकल्प JLabel में HTML पाठ लपेटकर है। अपने उदाहरण के बाद कोड है:

JTextPane k = new JTextPane(); 
k.insertComponent(new JLabel("<html><strong>Hey!</strong></html>")); 
+0

का उपयोग करते हुए 'JTextArea' अक्सर का उपयोग कर से बेहतर है' JLabel' क्योंकि 'JTextArea' स्क्रॉल एक' JScrollPane' में बेहतर और चुनें और पाठ की प्रतिलिपि करने के लिए अनुमति देता है। पदार्थ देखो और महसूस के बारे में जानकारी के लिए धन्यवाद। मैं इसका भी उपयोग करता हूं ताकि टिप सहायक हो। – Enwired