如何在SWT文本组件中实现自动隐藏滚动条 [英] How to implement Auto-Hide Scrollbar in SWT Text Component

查看:211
本文介绍了如何在SWT文本组件中实现自动隐藏滚动条的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个SWT Text组件,为此我设置了SWT.MULTISWT.V_SCROLLSWT.H_SCROLL以在需要时显示滚动条. 我发现即使内容小于文本组件,在禁用状态下也可以看到滚动条.

I have a SWT Text component, for which I set SWT.MULTI, SWT.V_SCROLL and SWT.H_SCROLL to show the scrollbar when required. I found that even content is smaller than the text component then also scrollbar are visible in disable state.

有什么方法可以自动隐藏滚动条?像java一样,Swing具有JScrollPane.horizo​​ntal_scrollbar_as_needed

Is there is any way through which I can auto hide the scrollbar? Like java Swing has JScrollPane.horizontal_scrollbar_as_needed

推荐答案

在所有情况下均适用:

Text text = new Text(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);

Listener scrollBarListener = new Listener () {
  @Override
  public void handleEvent(Event event) {
    Text t = (Text)event.widget;
    Rectangle r1 = t.getClientArea();
    Rectangle r2 = t.computeTrim(r1.x, r1.y, r1.width, r1.height);
    Point p = t.computeSize(SWT.DEFAULT,  SWT.DEFAULT,  true);
    t.getHorizontalBar().setVisible(r2.width <= p.x);
    t.getVerticalBar().setVisible(r2.height <= p.y);
    if (event.type == SWT.Modify) {
      t.getParent().layout(true);
      t.showSelection();
    }
  }
};
text.addListener(SWT.Resize, scrollBarListener);
text.addListener(SWT.Modify, scrollBarListener);

这篇关于如何在SWT文本组件中实现自动隐藏滚动条的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆