JLabel翻译

时间:2015-10-07 15:25:02

标签: java swing graphics

我有一个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

    } 
} 

1 个答案:

答案 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();
}