多个按钮和多个侦听器执行Java Swing的各种操作

多个按钮和多个侦听器执行Java Swing的各种操作,java,swing,event-listener,Java,Swing,Event Listener,如何让多个按钮和多个侦听器在JavaSwing中执行各种操作。下面是一个例子,我可以重定向到AddStudent类,但是重定向到Add成人类的按钮不会重定向到Add成人类 private class ButtonHandler implements ActionListener { // handle button event public void actionPerformed( ActionEvent Student ) { if ( Student.getSource()

如何让多个按钮和多个侦听器在JavaSwing中执行各种操作。下面是一个例子,我可以重定向到AddStudent类,但是重定向到Add成人类的按钮不会重定向到Add成人类

private class ButtonHandler implements ActionListener {
  // handle button event
  public void actionPerformed( ActionEvent Student ) {
    if ( Student.getSource() == button1 ){
      try {
        AddStudent newmember = new AddStudent();
        newmember.setVisible( true );
      } catch ( Exception e1 ) {
        e1.printStackTrace();
      }
  }
}


public void actionPerformed( ActionEvent Adult ) {
  if ( Adult.getSource() == button2 ){
    try {
      AddAdult newmember = new AddAdult();
      newmember.setVisible( true );
    } catch ( Exception e1 ) {
      e1.printStackTrace();
    }
  }
}

感谢您提前提供的帮助。

您可以在每个
JButton
上附加一个
ActionListener
,如中所述

所以你最终会得到这样的结果

JButton firstButton = ...;
firstButton.addActionListener( myFirstButtonActionListener );

JButton secondButton = ...;
secondButton.addActionListener( mySecondActionListener );

//add them to a UI
contentPane.add( firstButton );
contentPane.add( secondButton );

有关您的程序和按钮的更多具体问题,您需要向我们提供更多当前问题中可用的代码(换句话说,发布一个)

您可以在每个
JButton
上附加一个
ActionListener
,如中所述

所以你最终会得到这样的结果

JButton firstButton = ...;
firstButton.addActionListener( myFirstButtonActionListener );

JButton secondButton = ...;
secondButton.addActionListener( mySecondActionListener );

//add them to a UI
contentPane.add( firstButton );
contentPane.add( secondButton );

有关您的程序和按钮的更多具体问题,您需要向我们提供更多代码,这些代码目前可在您的问题中找到(换句话说,发布一个)

如果您希望有多个处理程序,您可以定义多个类,每个类实现ActionListener接口,并实现相应的逻辑,并将其附加到相应的按钮。
如果要对所有按钮使用单个处理程序,可以使用ActionEvent的getActionCommand()(比使用getSource()更清晰)方法检查按钮文本,并使用If-else实现相应的处理逻辑。

如果要有多个处理程序,您可以定义多个类,每个类实现ActionListener接口,并实现相应的逻辑,并将其附加到相应的按钮。
如果要对所有按钮使用单个处理程序,可以使用ActionEvent的getActionCommand()(比使用getSource()更清晰)方法来检查按钮文本,并使用If-else相应地实现处理逻辑。

还有三种方法

1) 使用

2) 使用内部ActionListener

代码

myButton.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent ae) {
        //some stuff
    }
});

3) 使用

你还有三种方法

1) 使用

2) 使用内部ActionListener

代码

myButton.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent ae) {
        //some stuff
    }
});

3) 你说的“行不通”是什么意思?另外,发布的代码不会编译,因为第二个方法不在类中。你说的“不会工作”是什么意思?另外,发布的代码不会编译,因为第二个方法不在类中@罗宾汉克斯,这就是我要找的例子@罗宾