2012-04-13 4 views
5

¿Cómo habilitaré las barras de desplazamiento para que se muestren en el Custom.StyledText? Muestra las barras de desplazamiento, pero no permite el estilo personalizado. ¿Estiloestilo para desplazarse?Habilitación de barras de desplazamiento en una ventana de Java SWT

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"); 



} 
} 

Respuesta

10

No es necesario el ScrolledComposite, utiliza SWT.V_SCROLL estilo en el StyledText. A continuación se muestra un ejemplo, con layouts en lugar de la 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"); 
} 

Puede utilizar los estilos SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI si también desea una barra de desplazamiento horizontal.

Cuestiones relacionadas