简体   繁体   中英

Styled Text setText have bad perfomance

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?

The only optimisation you can implement is putting your setText() in a Job or in a Runnable to not block the UI.

Other than that, it's an API limitation from SWT.

Other suggestions:

  • File a bug/feature request
  • Search for a StyledText , although apparently none exist
  • Rethink your program. Don't you have a backup plan? Is the performance critical?


    @greg-449

     /** * * @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(); } } 
  • The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

     
    粤ICP备18138465号  © 2020-2024 STACKOOM.COM