我有一个JLabel(带有图标),我想在点击JLabel时翻译这个JLabel。我已经向JLabel添加了一个mouseListener但是我没有提出任何关于如何执行从坐标(x,y)到坐标(x',y')
的转换的方法。class MyMouseListener extends MouseAdapter {
@Override
public void mouseClicked(MouseEvent e){
final JLabel label = (JLabel) e.getSource();
System.out.println("Player hit label -> " + label.getName() );
// Code for translating JLabel
}
}
答案 0 :(得分:2)
至于翻译(即移动)你的JLabel:
首先,您必须确保其父级的布局管理器设置为null,或者使用可配置为进行翻译的自定义布局管理器。
一旦你有了这个,这是一件简单的事情:
public void mouseClicked(MouseEvent ae) {
JLabel src = (JLabel) ae.getSource();
src.setLocation(src.getLocation().x + delta_x, src.getLocation().y + delta_y);
src.getParent().repaint();
}