import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
* Die Klasse MainGui erbt von der Klasse JFrame somit können alle Eigenschaften
* des JFrame direkt verwendet werden ich empfehle allerdings dir anzugewöhnen
* immer mit this die Klassen eigenen Eigenschaften anzusprechen. Zudem
* implementiert die Klasse das Interface ActionListener somit wird die
* actionPerformed Methode vorgeschrieben und die klasse kann wie ein
* ActionListener an JButtons oder an was auch immer vergeben werden.
*
* @author youza
*
*/
public class MainGui extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 8111424483338861563L;
private JButton jbWhatEver = new JButton();
private JPanel jpCenter = new JPanel();
private JLabel jlWhatEver = new JLabel();
private JLabel jlWhatEverOld = new JLabel();
/**
* Einhängepunkt der Applikation sollte eigentlich nicht in der Gui Klasse sein
*
* @param args Standard Variable in welcher Systemvariablen übergeben werden (z.B. auf Konsole)
*/
public static void main(String[]args){
new MainGui();
}
/**
* Konstruktor um die initialen Werte zu vergeben
*/
public MainGui() {
/*
* Hier wird das Layout auf das BorderLayout festgelegt und die beiden
* GuiElemente hinzugefügt
*/
this.setLayout(new BorderLayout());
jlWhatEverOld.setText("Alter Text");
jpCenter.add(jlWhatEverOld);
this.add(jbWhatEver, BorderLayout.NORTH);
this.add(jpCenter, BorderLayout.CENTER);
// initiale Werte für den Text der Gui Elemente
jbWhatEver.setText("Setze Neuen Text");
jlWhatEver.setText("Neuer Text");
// jbWhatEver.add(jlWhatEver);
/*
* Der ActionCommand dient dazu, dass bei einer Klasse mit mehreren
* Buttons die einzelnen Aktionen unterschieden werden können.
*/
jbWhatEver.setActionCommand("jlWhatEver");
// Der ActionListener muss dem Button noch zugewiesen werden
jbWhatEver.addActionListener(this);
// JFrame in Bildschirmmitte versetzen
this.setLocationRelativeTo(null);
// Die Größe des JFrames anpassen
this.pack();
// JFrame sichtbar machen
this.setVisible(true);
}
/**
* Hier wird festgelegt wie auf das abfeueren eines Elements reagiert werden
* soll
*/
@Override
public void actionPerformed(ActionEvent event) {
if (event.getActionCommand().equals("jlWhatEver")) {
jpCenter.removeAll();
jpCenter.add(jlWhatEver);
jbWhatEver.setActionCommand("jlWhatEverOld");
jbWhatEver.setText("Setze alten Text");
this.repaint();
} else if (event.getActionCommand().equals("jlWhatEverOld")) {
jpCenter.removeAll();
jpCenter.add(jlWhatEverOld);
jbWhatEver.setActionCommand("jlWhatEver");
jbWhatEver.setText("Setze Neuen Text");
this.repaint();
}
}
}