I have little problem with StyledText
. When I use setText()
Method and text is long, I must wait few seconds for render that text. Is there any method what can I use to speed up showing this text?
Asked
Active
Viewed 274 times
0

Baz
- 36,440
- 11
- 68
- 94

John Smith
- 105
- 1
- 2
- 10
1 Answers
0
The only optimisation you can implement is putting your setText()
in a in a Job
orRunnable
to not block the UI.
Other than that, it's an API limitation from SWT.
Other suggestions:
StyledText
, although apparently none exist
Edit:
/**
*
* @author ggrec
*
*/
public class Test
{
public static void main(final String[] args)
{
new Test();
}
private Test()
{
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setLayout(new GridLayout(1, false));
final Button button = new Button(shell, SWT.PUSH);
button.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
button.setText("Press me");
final StyledText text = new StyledText(shell, SWT.NONE);
text.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
button.addSelectionListener(new SelectionAdapter()
{
@Override public void widgetSelected(final SelectionEvent e)
{
Display.getDefault().asyncExec(new Runnable()
{
@Override public void run()
{
text.setText("*put very long text here*");
}
});
}
});
shell.setSize(1000, 1000);
shell.open();
while (!shell.isDisposed())
{
if ( !display.readAndDispatch() )
display.sleep();
}
display.dispose();
}
}
-
1`StyledText.setText()` has to be run on the UI thread, it will throw the invalid thread exception otherwise. – greg-449 Sep 12 '13 at 21:07