首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JScrollBar可见

JScrollBar可见
EN

Stack Overflow用户
提问于 2009-08-10 17:10:11
回答 4查看 5.4K关注 0票数 4

有没有办法知道JPanel中的JScrollBar是否可见?

我的意思是,有时候,我的面板有很多矩形(可以把它想象成按钮),需要一个滚动条,有时它不需要它。我想知道它什么时候放映。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-08-10 17:29:08

如果扩展JPanel并为自己添加JScrollbar(水平和/或垂直),则可以控制它们何时必须可见或不可见

(您可以使用isvisible()函数检查它们当前是否可见)

您可以找到这类类的两个示例,它们根据其内容确定是否需要可见滚动条:

  • JGraphPanel (它的回调函数actionPerformed(Event e)将根据缩放factor)
  • Plane调整可见性(如果需要,它的函数adjustComponents()将在JScrollBar上调用setVisible() )
票数 3
EN

Stack Overflow用户

发布于 2009-08-10 18:15:10

假设您有一个对JScrollPane的引用,您应该能够直接调用

代码语言:javascript
复制
yourJScrollPane.getHorizontalScrollBar().isVisible()

代码语言:javascript
复制
yourJScrollPane.getVerticalScrollBar().isVisible()
票数 3
EN

Stack Overflow用户

发布于 2012-09-14 21:51:45

如果您还需要得到有关可见性更改的通知,则可以使用如下代码:

代码语言:javascript
复制
final JScrollPane scroll = new JScrollPane(createMyPanel());
scroll.getVerticalScrollBar().addHierarchyListener(new HierarchyListener() {
  @Override
  public void hierarchyChanged(HierarchyEvent e) {
    if (e.getID() == HierarchyEvent.HIERARCHY_CHANGED && 
      (e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) != 0) {
      System.out.println(scroll.getVerticalScrollBar().isVisible());
    }
  }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1256061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档