Java 我怎么做纽扣?

Java 我怎么做纽扣?,java,swing,button,actionlistener,Java,Swing,Button,Actionlistener,我不想要一个JButton或类似的东西,我很难理解ActionListeners。 如果有人能告诉我应该在他的代码中添加什么,那么当我点击这些坐标时,我会进入下一个状态: class paint extends JPanel implements ActionListener{ public void MouseInput(MouseEvent m){ int y = m.getY(); int x = m.getX(); if(x >= 250 &

我不想要一个
JButton
或类似的东西,我很难理解
ActionListener
s。 如果有人能告诉我应该在他的代码中添加什么,那么当我点击这些坐标时,我会进入下一个状态:

class paint extends JPanel implements ActionListener{

  public void MouseInput(MouseEvent m){

    int y = m.getY();
    int x = m.getX();

    if(x >= 250 && x <= 550 && y >= 300 && y <= 400){

    }
  }

  public void actionPerformed(ActionEvent e) {
  }
}
class paint扩展JPanel实现ActionListener{
公共无效鼠标输入(鼠标事件m){
int y=m.getY();
int x=m.getX();

如果(x>=250&&x=300&&y为了让您的Swing组件
JPanel
通知一些源事件,在您的情况下,您希望听到鼠标单击;您的组件应该添加一些实现
鼠标侦听器的侦听器
(此侦听器应实现
MouseListener
接口中声明的方法,这些方法将作为自定义逻辑的基础):

然后您的
JPanel
组件可以添加此lisneter:

public class MyPanel extends JPanel
{
  public static void main(String[] args)
  {
    MyPanel panel = new MyPanel();
    panel.addMouseListener(new MyMouseListener());
  }
}
默认方法是将特定于
MouseListener
的实现声明为Swing组件的内部类,以便利用这些类的自然绑定,并从一个和另一个实例变量中访问这两个实例变量。 这将允许您为单个事件设置多个侦听器,但如果您不需要,您仍然可以将自己的组件设置为侦听器:

public class MyPanel extends JPanel implements MouseListener
{
  public static void main(String[] args)
  {
    MyPanel panel = new MyPanel();
    panel.initialize();
  }

  private void initialize()
  {
    this.addMouseListener(this);
  }

  @Override
  public void mouseClicked(MouseEvent e)
  {
  }

  @Override
  public void mousePressed(MouseEvent e)
  {
  }

  @Override
  public void mouseReleased(MouseEvent e)
  {
  }

  @Override
  public void mouseEntered(MouseEvent e)
  {
  }

  @Override
  public void mouseExited(MouseEvent e)
  {
  }
}

要使JPanel响应鼠标单击,您需要在panel.Read.Buttons中添加鼠标侦听器,因为它们可以将低级鼠标单击和键盘操作转换为高级操作事件。JPanel不会这样做。
public class MyPanel extends JPanel implements MouseListener
{
  public static void main(String[] args)
  {
    MyPanel panel = new MyPanel();
    panel.initialize();
  }

  private void initialize()
  {
    this.addMouseListener(this);
  }

  @Override
  public void mouseClicked(MouseEvent e)
  {
  }

  @Override
  public void mousePressed(MouseEvent e)
  {
  }

  @Override
  public void mouseReleased(MouseEvent e)
  {
  }

  @Override
  public void mouseEntered(MouseEvent e)
  {
  }

  @Override
  public void mouseExited(MouseEvent e)
  {
  }
}