2016-10-03 5 views
0

Wie kann ich eine Skalierung in swt mit Fließkommawerten anzeigen? DieseSWT-Skalierungs-Widget - Fließkommawerte

ist, was ich habe jetzt

Group groupTime = new Group(shell, SWT.BORDER); 
    groupTime.setLayout(new GridLayout(1,true)); 
    groupTime.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false,false, 1, 1)); 
    new Label(groupTime, SWT.NONE).setText("Speed in seconds:"); 

    Scale scale = new Scale (groupTime, SWT.BORDER); 
    scale.setMaximum (10); 

    Label speedLabel = new Label(groupTime, SWT.NONE); 
    speedLabel.setText("time"); 
    scale.addListener(SWT.Selection, new Listener() 
    { 
     public void handleEvent(Event event) 
     { 
      speedLabel.setText(scale.getSelection()+""); 
     } 
    }); 

Dank

Antwort

1

Es auf ganze Zahlen intern funktioniert, so dass Sie es selbst schwimmt Griff machen müssen. Dies wird Ihnen Nachkommastelle:

Scale scale = new Scale(shell, SWT.BORDER); 
scale.setMaximum(10 * 10); 

Label speedLabel = new Label(shell, SWT.NONE); 
speedLabel.setText("time"); 
scale.addListener(SWT.Selection, new Listener() 
{ 
    public void handleEvent(Event event) 
    { 
     speedLabel.setText((scale.getSelection()/10f) + ""); 
    } 
}); 

Wenn Sie mehr Dezimalstellen benötigen, dann ein Scale wirklich nicht der richtige Widget für Sie.

+0

Das ist genau das, was ich brauchte! Vielen Dank :) – NoaG

Verwandte Themen