0

我对StyledText. 当我使用setText()Method 并且文本很长时,我必须等待几秒钟才能呈现该文本。有什么方法可以加快显示此文本的速度吗?

4

1 回答 1

0

您可以实现的唯一优化是将您setText() 的 aJoba放入Runnable不阻塞 UI。

除此之外,这是 SWT 的 API 限制。

其他建议:

  • 提交错误/功能请求
  • 搜索 a StyledText,虽然显然不存在
  • 重新考虑你的程序。你没有后备计划吗?性能很关键吗?


    编辑:

    @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();
        }
    }
    
  • 于 2013-09-12T19:51:04.923 回答