我只想在鼠标悬停时才在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的最好机会](http://SSCCE.org)。 –
再次请创建并发布您的[mcve]。此外,您的代码不符合Swing线程规则,您需要查看的规则。请阅读[并发在Swing](https://docs.oracle.com/javase/tutorial/uiswing/concurrency/)。 –