このリンクから次のコードがあります 。. Swing フレームワークと単純な ChangeListener の例を使用します。
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractButton;
import javax.swing.ButtonModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class StateListener {
    public static void main(String args[]) {
  JFrame jFrame = new JFrame("");
  jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  JButton button = new JButton("Press Me");
  ActionListener actionListner = new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
    AbstractButton absButton = (AbstractButton) event.getSource();
    boolean selected = absButton.getModel().isSelected();
    System.out.println("Selected=" + selected + " \n");
}
  };
  ChangeListener changeListner = new ChangeListener() {
@Override
public void stateChanged(ChangeEvent event) {
    AbstractButton aButton = (AbstractButton) event.getSource();
    ButtonModel aModel = aButton.getModel();
    boolean armed = aModel.isArmed();
    boolean pressed = aModel.isPressed();
    boolean selected = aModel.isSelected();
    System.out.println("Armed :" + armed + " - Pressed :" + pressed + " - Selected :" + selected);
}
  };
  button.addActionListener(actionListner);
  button.addChangeListener(changeListner);
  Container cPane = jFrame.getContentPane();
  cPane.add(button, BorderLayout.CENTER);
  jFrame.setSize(800, 500);
  jFrame.setVisible(true);
    }
}
私の質問は: 1) をクリックするPress Meと、出力は
Armed :true - Pressed :false - Selected :false
Armed :true - Pressed :true - Selected :false
Selected=false 
Armed :true - Pressed :false - Selected :false
Armed :false - Pressed :false - Selected :false
Listener61 行目と 63 行目に 2 つの呼び出ししかありません。
button.addActionListener(actionListner);
  button.addChangeListener(changeListner);
出力は
Selected=false 
    Armed :true - Pressed :false - Selected :false
しかし、私は理解できない4行の出力を取得しています
2)。メソッドは、ChangeListener または ActionListener によってオーバーライドされないため、クラスaddActionListenerのaddChangeListener一部ですか?JButton
ありがとう、私は Swing Framework を使用する初心者です。どんな助けでも大歓迎です。