2009-09-29 8 views
6

मुझे पता है कि एसडब्ल्यूटी के पास एचटीएमएल को विजेट के रूप में एक href शैली लिंक बनाने के लिए एक लिंक क्लास है, लेकिन मैं स्टाइलडटेक्स्ट नियंत्रण में कुछ टेक्स्ट बनाने और लिंक के रूप में कार्य करने का तरीका खोजने का प्रयास नहीं कर रहा था।क्या एचटीएमएल-स्टाइल लिंक एसडब्ल्यूटी स्टाइलटेक्स्ट में जोड़े जा सकते हैं?

मुझे लगता है कि ग्रहण आपके कोड संपादक में ऐसा करता है यदि आप नियंत्रण को दबाते हैं और विधि नाम पर होवर करते हैं, लेकिन मुझे पता है कि ग्रहण जावा संपादक स्टाइल टेक्स्ट नियंत्रण से कहीं अधिक जटिल है।

उत्तर

7

JFace 3.5 के बाद से, लिंक के लिए एक विशेष शैली है। लिंक को स्वचालित रूप से ढूंढने के लिए, बस आपको मिलने वाली लाइनों में पैटर्न http://[^ ] (लिंक में रिक्त स्थान की अनुमति नहीं है) की तलाश करें।

2

आप StyledText विजेट के लिए एक LineStyleListener जोड़ने की जरूरत:

textField.addLineStyleListener (...); 

... 

public void lineGetStyle (LineStyleEvent e) 
{ 
    // alloc a set of styles for the requested line 
    e.styles = new StyleRange [...]; 

    for (int i = 0; i < e.styles.length; i++) 
    { 
    StyleRange styleRange = new StyleRange(); 

    styleRange.start = ...; 
    styleRange.length = ...; 
    styleRange.underline = true; 
    styleRange.foreground = <URL colour>; 

    e.styles [i] = styleRange; 
    } 
} 

LineStyleListener के लिए जावाडोक आप कुछ और अधिक जानकारी दे देंगे।

क्लिक व्यवहार जोड़ने के लिए, आपको कुछ और तर्क की आवश्यकता है: मैं कुछ कोड पेस्ट भी कर सकता हूं जिसका उपयोग हम एचटीएमएल-स्टाइल क्लिक करने योग्य लिंक यूआरएल को स्टाइल किए गए विजेट में स्वचालित रूप से जोड़ने के लिए करते हैं, अगर इससे मदद मिलेगी।

styleRange.underlineStyle = SWT.UNDERLINE_LINK; 
styleRange.data = "http://www.google.com/"; 

यह बात और अधिक सरल एक लिंक की पहचान करने और आप शैली में यूआरएल स्टोर कर सकते हैं बनाता है:

+0

धन्यवाद! मुझे आपके द्वारा लिंक जोड़ने के लिए उपयोग किए जाने वाले कोड को देखने में रुचि होगी, लेकिन यह सहायक है। – thehiatus

संबंधित मुद्दे