Swing 如何使JScrollPane JScrollBar像osx滚动条一样只在鼠标上方显示

Swing 如何使JScrollPane JScrollBar像osx滚动条一样只在鼠标上方显示,swing,hide,jscrollpane,jscrollbar,Swing,Hide,Jscrollpane,Jscrollbar,我希望最小化滚动条在swing应用程序中占用的不动产。有没有办法让它们像osx滚动条一样只在鼠标上方显示?否则,有没有办法不显示它们,但仍然可以滚动 谢谢您可以使用getVerticalScrollBar().setVisible(false)和SetWheelScrollingEnabled(boolean handleWheel)方法。但是如果你想在它们使用时显示它们,那就有点棘手了。您必须为鼠标滚轮添加鼠标侦听器并创建二维图形组件。如果你只是显示和隐藏一个普通的JScrollBar(使用s

我希望最小化滚动条在swing应用程序中占用的不动产。有没有办法让它们像osx滚动条一样只在鼠标上方显示?否则,有没有办法不显示它们,但仍然可以滚动


谢谢

您可以使用getVerticalScrollBar().setVisible(false)和SetWheelScrollingEnabled(boolean handleWheel)方法。但是如果你想在它们使用时显示它们,那就有点棘手了。您必须为鼠标滚轮添加鼠标侦听器并创建二维图形组件。如果你只是显示和隐藏一个普通的JScrollBar(使用setVisible(布尔可见)方法),查看区域也会改变,看起来会非常突然。您需要使用paint()/repaint()方法创建一个覆盖层。

值得一提的是:在OS X 10.7.4上,滚动条总是显示出来这非常有用,谢谢。你认为我应该重写JScrollBar类上的paint方法,还是只制作一个我重写pain方法的通用JComponent?最后,要使文本在自定义滚动区域中可见,我需要对父布局进行一些约束,在父布局中覆盖非不透明组件?我没有尝试过,所以您必须自己查找。但是,如果你有JComponents,我相信它们会耗尽你宝贵的“不动产”。您需要添加grapihics 2D对象并在鼠标滚轮侦听器中移动它们。确保你把它们覆盖在swing组件上,否则它们会被画在下面,看不见。很抱歉,我没有理解你评论中的第二个问题。如果这是一个重要的问题,我建议你发布另一个问题