package lecture.swing;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

/** JButton ボタンの状態に応じた複数のアイコンの設定 Java Swing */
class ButtonSample4 {
  public static void main(String[] args) {
    JFrame frame = new JFrame("Button");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel panel = new JPanel();
    JButton button = new JButton();
    // デフォルトのアイコン
    ImageIcon image = new ImageIcon("./images/kyon01.jpg");
    button.setIcon(image);
    // 無効状態のアイコン
    image = new ImageIcon("./images/kyon02.jpg");
    button.setDisabledIcon(image);
    button.setDisabledSelectedIcon(image);
    // 押下された状態のアイコン
    image = new ImageIcon("./images/kyon03.jpg");
    button.setPressedIcon(image);
    // 反転状態のアイコン
    image = new ImageIcon("./images/kyon04.jpg");
    button.setRolloverIcon(image);
    // 反転・選択状態のアイコン
    image = new ImageIcon("./images/kyon05.jpg");
    button.setRolloverIcon(image);
    // Disabledにすると無効状態のアイコンが表示される
    //button.setEnabled(false);

    // リスナーの設定
    // リスナーについては、別途解説している
    button.addActionListener(
      new ActionListener() {
        public void actionPerformed(ActionEvent ev) {
          System.out.println("pushed");
        }
      }
    );
    panel.add(button);
    frame.add(panel);
    frame.pack();
    frame.setVisible(true);
  }
}
//---------------------------------------------------
//・目次 - Swing
//・目次 - Java入門
//・目次 - ビジネスパーソンの常識と非常識
//・目次 - 論理・発想・思考についての考察と鍛え方
//・目次 - 単なる雑談
//---------------------------------------------------