我正在尝试使用图形在Swing中对多个图像进行悬停效果,我知道这可以通过使用CSS来完成但是在Java中产生这种效果很困惑,有人可以帮助我吗?
答案 0 :(得分:1)
是的,很有可能这样做。
假设您有一个JPanel
,其中包含一个图像,您希望每次用户将鼠标悬停在该图像上时都会更改该图像。代码将是这样的:
JPanel panel = new JPanel(); // create a JPanel
this.setupGI(panel); // prepare your background
panel.addMouseListener(new MouseHandler()); // add a listener
this.getContentPane.add(panel); // add it to JApplet / JFrame
这是添加监听器,其中MouseHandler
将是您的自定义处理程序类。
class MouseHandler extends java.awt.event.MouseAdapter{
@Override public void mouseEntered(MouseEvent e){
// your logic here
}
@Override public void mouseExited(MouseEvent e){
//
}
}
现在,MouseHandler
课程将如何访问JPanel
,这取决于您。通常,我将处理程序类作为子类,因此它可以访问封闭类的所有方法,字段。或者,您可以制作getter和setter方法。它是由你决定。
更多信息:http://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html
答案 1 :(得分:0)
将MouseListener与事件mouseEntered和mouseExited一起使用。