
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

// Beispiel mit Schaltern
/*
Durch die beiden Schalter wird das Label geändert.
Dabei werden auch die Schriften geändert

Beide Schalter haben einen "gemeinsamen" Action_listener
*/

public class JButton_Bsp02 extends JFrame {
  JToolBar toolBar = new JToolBar();
  JButton Bn1 = new JButton();
  JButton Bn2 = new JButton();
  JLabel label1;


  //Frame konstruieren
  public JButton_Bsp02() {
    this.setSize(new Dimension(400, 300));
    this.setTitle("JButton_Bsp02");
    setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    setGUI();
  }

  //Initialisierung der Komponente
  private void setGUI()  {



    Bn1.setText("1. Labeländerung");
    Bn1.setToolTipText("Ändert den Text im Anzeigeelement");
    Bn1.addActionListener(new java.awt.event.ActionListener() {

      public void actionPerformed(ActionEvent e) {
        Bn1_2_actionPerformed(e);
      }
    });
    toolBar.add(Bn1);
    Bn1.setFont( new Font("Arial", Font.BOLD,18)  );


    Bn2.setText("2. Labeländerung");
    Bn2.setToolTipText("Ändert den Text im Anzeigeelement");
    Bn2.addActionListener(new java.awt.event.ActionListener() {

      public void actionPerformed(ActionEvent e) {
        Bn1_2_actionPerformed(e);
      }
    });
    toolBar.add(Bn2);
    Bn1.setFont( new Font("Arial", Font.BOLD,18)  );


    this.getContentPane().add(toolBar, BorderLayout.NORTH);

    label1 = new JLabel("Text");
    label1.setText("Dies ist ein Anzeigetext");
    label1.setFont( new Font("Arial", Font.BOLD,18)  );


    this.getContentPane().add(label1, BorderLayout.CENTER);

     Bn1.setFont( new Font("Arial", Font.BOLD,24)  );
     Bn1.setForeground( Color.blue );
     Bn1.setBackground( Color.yellow );  // wird nicht gesetzt

  }  // jbInit


 void Bn1_2_actionPerformed(ActionEvent e) {
     if (e.getSource()==Bn1) {
       System.out.println("Schalter1 angeklickt");
       label1.setText("JButton1 angeklickt");
       label1.setFont( new Font("TimesRoman", Font.ITALIC,32)  );
       label1.setForeground( Color.red );
     }
     else {
       if (e.getSource()==Bn2) {
         System.out.println("Schalter2 angeklickt");
         label1.setText("JButton2 angeklickt");
         label1.setFont( new Font("Arial", Font.PLAIN,14)  );
         label1.setForeground( Color.blue );
         label1.setBackground( Color.yellow );  // wird nicht gesetzt
       }
       else {
         System.err.println("ERROR in Methode Bn1_2_actionPerformed"  );
         System.err.println("Weder Schalter 1 noch Schalter 2"  );
       }
     }
  }



  public static void main(String[] args) {
    JButton_Bsp02 frame = new JButton_Bsp02();
    frame.setVisible(true);
  }


}
