Ik heb een schuifbalk die een grootte van een StyledText activeert en de hoogte van het ExpandItem waarin het leeft. Het wordt "springerig". Met andere woorden, de StyledText heeft de neiging om uit te breiden naar de gewenste grootte en keert vervolgens terug naar de oorspronkelijke grootte terwijl het formaat wordt gewijzigd. Uiteindelijk komt alles op de juiste plek terecht, maar het is een lelijke overgang.
Wat kan ik in de volgende code veranderen om van de "jumpiness" af te komen?
public static void main(String[] args) {
final Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout(SWT.VERTICAL));
shell.setSize(400, 400);
//Create the expand bar
ExpandBar expandBar1=new ExpandBar(shell,SWT.None);
//Create the first expand item.
final ExpandItem expandItem1=new ExpandItem(expandBar1,SWT.None);
final Composite composite=new Composite(expandBar1,SWT.NONE);
final RowLayout layout=new RowLayout(SWT.VERTICAL);
composite.setLayout(layout);
expandItem1.setControl(composite);
expandItem1.setHeight(100);
//Add text
final StyledText one=new StyledText(composite,SWT.BORDER|SWT.MULTI|SWT.WRAP|SWT.V_SCROLL);
one.setText("aaaa\nbbbbbb\nccccc\ndddd");
//Add a sash
final Sash sash1=new Sash(composite,SWT.HORIZONTAL);
sash1.setSize(sash1.getSize().x, 10);
sash1.addListener(SWT.Selection,new Listener(){
@Override
public void handleEvent(Event event) {
one.setSize(one.getSize().x,event.y);
sash1.setLocation(0, event.y+5);
expandItem1.setHeight(event.y+10);
composite.redraw();
}
});
//Create the second expand item.
ExpandItem expandItem2=new ExpandItem(expandBar1,SWT.None);
Composite composite2=new Composite(expandBar1,SWT.None);
composite2.setLayout(new FillLayout());
StyledText two=new StyledText(composite2,SWT.V_SCROLL);
two.setText("two\nabadfae\nasdfaef\nadfef\nesfj;lef\nefsfe\nasefae\n...");
expandItem2.setControl(composite2);
expandItem2.setHeight(100);
//Final junk
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
}
Opmerking: Aarzel niet om andere tips te geven voor het verbeteren van deze code. Ik ben nieuw bij SWT.