2012-04-13 10 views
5

मैं कस्टम पर प्रदर्शित करने के लिए स्क्रॉल बार को कैसे सक्षम करूं .tyledText? यह स्क्रॉल बार प्रदर्शित करता है लेकिन कस्टम को अनुमति नहीं देता है। StledText स्क्रॉल करने के लिए?जावा एसडब्ल्यूटी विंडो में स्क्रॉल बार सक्षम करना

package app; 

import org.eclipse.swt.SWT; 
import org.eclipse.swt.widgets.Composite; 
import org.eclipse.swt.widgets.Display; 
import org.eclipse.swt.widgets.Shell; 
import org.eclipse.swt.widgets.Label; 
import org.eclipse.swt.widgets.Text; 
import org.eclipse.swt.widgets.Button; 
import org.eclipse.swt.events.SelectionAdapter; 
import org.eclipse.swt.events.SelectionEvent; 
import org.eclipse.swt.events.MouseAdapter; 
import org.eclipse.swt.events.MouseEvent; 



import org.eclipse.swt.custom.StyledText; 
import org.eclipse.swt.custom.ScrolledComposite; 
public class myapp { 

protected Shell shlWhois; 
private Text text; 

/** 
* Launch the application. 
* @param args 
*/ 
public static void main(String[] args) { 
    try { 
     myapp window = new myapp(); 
     window.open(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

/** 
* Open the window. 
*/ 
public void open() { 
    Display display = Display.getDefault(); 
    createContents(); 
    shlWhois.open(); 
    shlWhois.layout(); 
    while (!shlWhois.isDisposed()) { 
     if (!display.readAndDispatch()) { 
      display.sleep(); 
     } 
    } 
} 

/** 
* Create contents of the window. 
*/ 
protected void createContents() { 
    shlWhois = new Shell(); 
    shlWhois.setSize(450, 300); 
    shlWhois.setText("Whois"); 

    Label lblDomain = new Label(shlWhois, SWT.NONE); 
    lblDomain.setBounds(10, 10, 55, 15); 
    lblDomain.setText("Domain"); 

    text = new Text(shlWhois, SWT.BORDER); 

    text.setBounds(72, 4, 260, 21); 

    final ScrolledComposite scrolledComposite_1 = new ScrolledComposite(shlWhois, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); 
    scrolledComposite_1.setAlwaysShowScrollBars(true); 
    final Composite c = new Composite(scrolledComposite_1, SWT.NONE); 
    scrolledComposite_1.setMinHeight(1000); 
    scrolledComposite_1.setExpandVertical(true); 
    scrolledComposite_1.setExpandHorizontal(true); 
    scrolledComposite_1.setBounds(10, 31, 403, 221); 

    final StyledText styledText = new StyledText(scrolledComposite_1, SWT.BORDER | SWT.WRAP); 

    scrolledComposite_1.setContent(styledText); 
    scrolledComposite_1.setMinSize(styledText.computeSize(SWT.DEFAULT, SWT.DEFAULT)); 

    Button btnWhois = new Button(shlWhois, SWT.NONE); 
    btnWhois.addMouseListener(new MouseAdapter() { 
     @Override 
     public void mouseDown(MouseEvent arg0) { 



     } 
    }); 
    btnWhois.addSelectionListener(new SelectionAdapter() { 
     @Override 
     public void widgetSelected(SelectionEvent arg0) { 
     } 
    }); 
    btnWhois.setBounds(338, 2, 75, 25); 
    btnWhois.setText("Search"); 



} 
} 

उत्तर

10

आप ScrolledComposite की जरूरत नहीं है StyledText पर SWT.V_SCROLL शैली का उपयोग करें। यहाँ एक उदाहरण है, layouts बजाय setBounds के साथ:

/** 
* Create contents of the window. 
*/ 
protected void createContents() { 
    shlWhois = new Shell(); 
    shlWhois.setSize(450, 300); 
    shlWhois.setText("Whois"); 
    shlWhois.setLayout(new GridLayout(2, false)); 

    Label lblDomain = new Label(shlWhois, SWT.NONE); 
    lblDomain.setLayoutData(GridDataFactory.fillDefaults().create()); 
    lblDomain.setText("Domain"); 

    text = new Text(shlWhois, SWT.BORDER); 
    text.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); 

    final StyledText styledText = new StyledText(shlWhois, SWT.BORDER | SWT.V_SCROLL | SWT.MULTI | SWT.WRAP); 
    styledText.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).span(2, 1).create()); 

    Button btnWhois = new Button(shlWhois, SWT.NONE); 
    btnWhois.setText("Search"); 
} 

आप शैलियों SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI उपयोग कर सकते हैं अगर आप भी एक क्षैतिज स्क्रॉलबार चाहते हैं।

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