【发布时间】:2017-07-19 21:01:33
【问题描述】:
我只想在鼠标悬停时在 JScrollPane 中显示滚动条。我尝试使用下面显示的方法将 MouseAdapter 作为 MouseListener 添加到 JScrollbar,但效果不佳。当鼠标移到滚动条上方时,滚动条会闪烁。
有什么建议吗?
@Override
public void mouseEntered(java.awt.event.MouseEvent evt) {
Runnable runner = new Runnable()
{
public void run() {
JScrollPane sp = (JScrollPane) evt.getSource();
sp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
sp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
}
};
Thread t = new Thread(runner, "Enter Thread");
t.start();
}
@Override
public void mouseExited(java.awt.event.MouseEvent evt) {
Runnable runner = new Runnable()
{
public void run() {
JScrollPane sp = (JScrollPane) evt.getSource();
sp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
sp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
}
};
Thread t = new Thread(runner, "Exit Thread");
t.start();}
【问题讨论】:
-
为了获得体面帮助的最佳机会,请考虑创建并发布一个体面的SSCCE。
-
再次,请创建并发布您的minimal reproducible example。此外,您的代码不符合 Swing 线程规则,即您要查看的规则。请阅读Concurrency in Swing。
标签: java swing hover mouseevent jscrollbar