2010-05-12 58 views
2

如何添加可由用户点击图标的图标(汽车,地球或其他)图像? 我想用改写的paint方法将它们添加到jpanel上。创建可点击jpanel的图像

+0

你的意思是点击并拖动? – trashgod 2010-05-12 14:54:34

回答

4

只需使用带图标的JLabel。然后添加一个MouseListener来监听点击。

JLabel label = new JLabel(yourIcon); // probably an ImageIcon 
label.addMouseListener(new MouseAdapter(){ 
    public void mouseClicked(MouseEvent e) { 
    System.out.println("Click at: " + e.getPoint(); 
    } 
}); 
+1

你不应该处理mouseClicked。标准是处理mousePressed(或根据您的要求发布)。这是为什么按钮是首选的另一个原因。它将按下/释放到一个ActionEvent中。而如果在按下事件和释放事件之间即使是一个像素移动鼠标,mouseClicked也不会触发。 – camickr 2010-05-12 19:54:23

0

最简单的方法是将一个图标添加到JButton,然后您可以使用ActionLlistener来处理鼠标单击。您也可以使用:

button.setBorderPainted(false); 

摆脱边界,因此它看起来像一个标签。

+0

使用按钮有时会在各种外观和感觉上出现问题,特别是如果图像具有透明图像 - 即处于翻转或装备状态绘画中。 – Keilly 2010-05-12 19:00:57

+1

按照通常使用的方式在按钮上使用图标和文本时,这会如何不同?你不会有同样的问题吗?这听起来像是LAF的问题,尽管我从来没有在Metal或Windows上看过它。 – camickr 2010-05-12 19:58:06