2009-04-16 20 views
10

JTextArea का टैब आकार आसानी से setTabSize(int) का उपयोग करके सेट किया जा सकता है।आप जेडडिटरपेन में टैब आकार कैसे सेट करते हैं?

क्या JEditorPane के साथ ऐसा करने का कोई ही तरीका है?

अभी, मेरी फलक में टैब के साथ पाठ की तरह दिखता है:

if (stuff){ 
      more stuff; 
} 

और, मैं एक बहुत छोटे टैब स्टॉप पसंद करेंगे:

if (stuff){ 
    more stuff; 
} 
+0

http://java-sl.com/tip_default_tabstop_size.html आप यह – StanislavL

उत्तर

13

JEditorPane विभिन्न प्रकार का समर्थन करने के लिए बनाया गया है के रूप में सामग्री प्रकारों के, यह सीधे "टैब आकार" निर्दिष्ट करने का एक तरीका प्रदान नहीं करता है, क्योंकि इसका अर्थ सामग्री मॉडल द्वारा परिभाषित किया जाना चाहिए। हालांकि जब आप एक मॉडल का उपयोग करते हैं जो प्लेन डॉक्यूमेंट या उसके वंशजों में से एक है, तो "टैबसाइज एट्रिब्यूट" होता है जो आप जो खोज रहे हैं उसे प्रदान करता है।

उदाहरण:

JEditorPane pane = new JEditorPane(...); 
... 
Document doc = pane.getDocument(); 
if (doc instanceof PlainDocument) { 
    doc.putProperty(PlainDocument.tabSizeAttribute, 8); 
} 
... 

जावाडोक से:

/** 
* Name of the attribute that specifies the tab 
* size for tabs contained in the content. The 
* type for the value is Integer. 
*/ 
public static final String tabSizeAttribute = "tabSize"; 
+0

देख सकते हैं कि सिर्फ 'कैसे' नहीं, बल्कि 'क्यों' भी! – jjnguy

+1

स्टाइल संपादक के लिए यह भी संभव है http: // java-sl.com/tip_default_tabstop_size.html – StanislavL

6

मामले किसी में एक StyledDocument

(अन्य जवाब मृत्यु हो गई पर लिंक) का उपयोग कर जाने पर आप किसी TabSet जो एक है बनाने TabStops की सरणी। मेरे मामले में मैं केवल 1 टैब के बारे में परवाह है, और मैं यह बाएं से 20px चाहता था, इसलिए इस कोड को मेरे लिए काम किया:

StyleContext sc = StyleContext.getDefaultStyleContext(); 
TabSet tabs = new TabSet(new TabStop[] { new TabStop(20) }); 
AttributeSet paraSet = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.TabSet, tabs); 
pane.setParagraphAttributes(paraSet, false); 
2

मुझे थोड़ी देर के लिया यह पता लगाने की। और टैब्सटॉप में टैबसेट का उपयोग करने का निर्णय लिया जिसने फ़ॉन्ट आकार के आधार पर चौड़ाई की गणना की है। जब भी फ़ॉन्ट आकार बदलता है (जेडिटपेन की पेंट() विधि में) इसे रीसेट करना होगा)।

जटिल सामग्री! :(

+3

यह कोई जवाब नहीं है! – Vallentin