我试图在java中编写一个应用程序,通过将一行连接到另一个来连接面板上的两个jLabel。我可以在面板上的两个点之间创建线条但是我无法弄清楚如何让面板识别当我将鼠标放在标签上时我想开始绘制线条,同样当我将鼠标放在我想要停止绘制的目标上。
我通过覆盖面板的paintComponent方法绘制线条:
@Override
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
Enumeration e = stack.elements();
g2d.setPaint(Color.black);
while (e.hasMoreElements()) {
g2d.draw((Line2D) e.nextElement());
}
g2d.setPaint(blank);
g2d.draw(savedLine2d);
g2d.setPaint(Color.black);
g2d.draw(line2d);
}
答案 0 :(得分:0)
要检测拖动JLabel
上的星星,请在该标签上注册一个动作侦听器:
JLabel lable = new JLabel("Drag test");
//add motion listener to label
lable.addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseMoved(MouseEvent e) {
// do nothing
}
@Override
public void mouseDragged(MouseEvent e) {
System.out.println("Dragging " + e.getX()+"-" + e.getY());
}
});