DOM开发者_JAVA技巧Document.addEventListener("mousemove", new EventListener() {
public void handleEvent(Event evt) {
System.out.println(evt.getType().toString());
final DOMElement targetElement = (DOMElement) browserDocument.getElementfromPixelPosition(mpl.screenX, mpl.screenY);
targetElement.setAttribute("style", "border:1px solid red;");
targetElement.addEventListener("mouseout", new EventListener() {
public void handleEvent(Event evt) {
System.out.println(evt.getType().toString());
targetElement.setAttribute("style", "border:none;");
}
}, false);
}
}, false);
I want a red border to highlight elements on mouseover. on mouseout, I want it to disappear.
How to fix it? The code I wrote doesn't work too well.
Here is an example illustrating what you asked
This example applies the border to a JPanel
, you can modify it to work with your dom element
import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;
public class HighlightBorder extends MouseAdapter {
JPanel p;
LineBorder border;
public HighlightBorder() {
JFrame j = new JFrame();
p = new JPanel();
border = new LineBorder(Color.red, 2);
j.getContentPane().add(p);
j.setSize(400, 300);
j.setVisible(true);
p.addMouseListener(this);
}
public void mouseEntered(MouseEvent e) {
p.setBorder(border);
}
public void mouseExited(MouseEvent e) {
p.setBorder(null);
}
public static void main(String[] args) {
new HighlightBorder();
}
}
精彩评论