有没有办法知道JPanel中的JScrollBar是否可见?
我的意思是,有时候,我的面板有很多矩形(可以把它想象成按钮),需要一个滚动条,有时它不需要它。我想知道它什么时候放映。
发布于 2009-08-10 17:29:08
如果扩展JPanel并为自己添加JScrollbar(水平和/或垂直),则可以控制它们何时必须可见或不可见
(您可以使用isvisible()函数检查它们当前是否可见)
您可以找到这类类的两个示例,它们根据其内容确定是否需要可见滚动条:
JGraphPanel (它的回调函数actionPerformed(Event e)将根据缩放factor)Plane调整可见性(如果需要,它的函数adjustComponents()将在JScrollBar上调用setVisible() )发布于 2009-08-10 18:15:10
假设您有一个对JScrollPane的引用,您应该能够直接调用
yourJScrollPane.getHorizontalScrollBar().isVisible()或
yourJScrollPane.getVerticalScrollBar().isVisible()发布于 2012-09-14 21:51:45
如果您还需要得到有关可见性更改的通知,则可以使用如下代码:
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());
}
}
});https://stackoverflow.com/questions/1256061
复制相似问题