我知道这个问题非常简单,但我无法弄清楚如何构建它。它似乎有很多参数,我不仅不知道要放入什么,而且我甚至不知道组件是什么。如果有人能够解释使用基本概念,那就太好了。感谢
答案 0 :(得分:0)
您需要3个步骤: 1.您必须在GUI类中实现Mouselistener接口 2.将侦听器添加到应该侦听的GUI元素 3.为特定的鼠标事件实现事件监听器(在将接口添加到类之后,编译器也需要) 求助:来自Oracle https://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html
的教程答案 1 :(得分:0)
没有MouseListener,无法有效使用MouseEvent。
要使用MouseListener,您必须使用:
public class StackTest implements MouseListener{
public static void main(String[] args){
}
public void mouseClicked(MouseEvent arg0){
}
public void mouseEntered(MouseEvent arg0){
}
public void mouseExited(MouseEvent arg0){
}
public void mousePressed(MouseEvent arg0){
}
public void mouseReleased(MouseEvent arg0){
}
或者,你会使用
component.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent arg0){
}
public void mouseEntered(MouseEvent arg0){
}
public void mouseExited(MouseEvent arg0){
}
public void mousePressed(MouseEvent arg0){
}
public void mouseReleased(MouseEvent arg0){
}
});
只要组件能够在其中实现MouseListener,就可以正常工作。这五种方法也是必需的,它们都有自己的调用。
的mouseClicked
当用户按下组件内鼠标上的任何按钮时,将调用此方法。
的mouseEntered
当用户的鼠标进入组件的区域时调用此方法。
的mouseExited
当用户的鼠标离开组件的区域时调用此方法。
的mousePressed
当用户在组件上按下鼠标左键时会调用此方法。
的mouseReleased
当用户在按下组件后释放鼠标上的任何按钮时,将调用此方法
注意: mouseClicked将在mouseReleased之前调用 ALWAYS ,分别与mouseEntered和mouseExited相同。
无论是否有任何代码,也会调用这些方法。
现在,component
是一个从Component
类下降的对象。组件是JButtons,JPanels,JFrame等等,您看到的所有现代组件都来自javax.swing
包。例如,您可能已经看过JOptionPane
。
JOptionPane
只是一个JFrame,一个JLabel和一个JButton。
所有这些都是可以拥有Event Listener
的组件。 event listener
正如它所说的那样。它会侦听特定事件。例如MouseListener
,侦听涉及用户鼠标的事件。
您可以详细了解组件here