简体   繁体   English

在Eclipse中,如何在过滤器上的键输入结束时刷新视图?

[英]How to refresh view when key typing on a filter is over, in Eclipse?

I have a view with a table and a search box above the table. 我有一个表格和桌子上方的搜索框。 I'm currently refreshing the view everytime a key is released. 我每次发布密钥时都会刷新视图。 This causes some lag. 这导致一些滞后。

Code: 码:

searchText.addKeyListener(new KeyAdapter() {
        @Override
        public void keyReleased(final KeyEvent ke) {
            filter.setSearchText(searchText.getText());
            viewer.refresh();
        }
        });

How can I refresh the view only when the user stops writting ? 如何仅在用户停止写入时刷新视图?

You can achieve this using a threshold and Timer : 您可以使用阈值和Timer实现此目的:

final Timer timer = new Timer(threshold, new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
    filter.setSearchText(searchText.getText());
    viewer.refresh();
  }
});
timer.setRepeat(false);
searchText.addKeyListener(new KeyAdapter() {
    @Override
    public void keyReleased(final KeyEvent ke) {
        timer.restart();
    }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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