Стилизованный текст setText имеет плохую производительность
У меня мало проблем с StyledText
, Когда я использую setText()
Метод и текст длинные, я должен подождать несколько секунд для рендеринга этого текста. Есть какой-нибудь метод, который я могу использовать, чтобы ускорить показ этого текста?
1 ответ
Единственная оптимизация, которую вы можете реализовать - это setText()
в Job
или в Runnable
не блокировать пользовательский интерфейс.
Кроме этого, это ограничение API от SWT.
Другие предложения:
StyledText
хотя видимо ничего не существует Редактировать:
/**
*
* @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();
}
}