Hallo Java-Forum,
der folgende Code beschschreibt ein simples Programm und ist meiner Meinung nach pinibel kommentiert. Mich interessiert einfach, was da noch fehlt, bzw. was ich da noch besser machen kann.
MfG
Klasse Main:
Klasse GUI:
Klasse ActionHandler:
der folgende Code beschschreibt ein simples Programm und ist meiner Meinung nach pinibel kommentiert. Mich interessiert einfach, was da noch fehlt, bzw. was ich da noch besser machen kann.
MfG
Klasse Main:
Java:
public class Main {
public static void main(String[] args) {
GUI fenster = new GUI(); // ein Fenster wird erzeugt
}
}
Klasse GUI:
Java:
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class GUI extends JFrame{
// Variablen anlegen und Objekte der Steuerelemente erzeugen
JPanel panel1 = new JPanel();
JButton addiereButton = new JButton("Addieren");
JButton subtrahiereButton = new JButton("Abziehen");
JButton button3 = new JButton("Sperren");
JTextField txtfield = new JTextField("0",20);
boolean locked = false;
public GUI()
{
// Fensterattribut festlegen
setSize(500,100);
setResizable(false);
setLocationRelativeTo(null);
setTitle("Titel");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//-----------------------------ActionListener erzeugen----------------------------------------
ActionListener al = new ActionHandler(this);
//---------------------------------Steuerelemente dem Fenster hinzufügen-------------------------------------
add(panel1);
panel1.add(addiereButton);
panel1.add(subtrahiereButton);
panel1.add(button3);
addiereButton.addActionListener(al);
subtrahiereButton.addActionListener(al);
button3.addActionListener(al);
panel1.add(txtfield);
//-------------------------------------Fenster sichtbar machen---------------------
setVisible(true);
}
/**
* ändert den Inhalt des Textfelds txtfield
* @param zahl Zahl, die in dem Textfeld steht
*/
public void setTextFieldText(int zahl)
{
txtfield.setText("" + zahl);
}
/**
* verhindert das Editieren von txtfield
*/
public void sperreTextfield()
{
txtfield.setEditable(false);
locked = true;
button3.setText("Entsperren");
}
/**
* ermöglicht das Editieren von txtfield
*/
public void entsperreTextfield()
{
txtfield.setEditable(true);
locked = false;
button3.setText("Sperren");
}
}
Klasse ActionHandler:
Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ActionHandler implements ActionListener {
GUI fenster;
int zahl;
public ActionHandler(GUI fenster)
{
this.fenster = fenster; // Übergabe der Referenz des Fensters
}
@Override
public void actionPerformed(ActionEvent e) {
// falls addiereButton geklickt wurde
if (e.getSource().equals(fenster.addiereButton))
{
zahl++;
fenster.setTextFieldText(zahl);
}
// falls subtrahiereButton geklickt wurde
else if (e.getSource().equals(fenster.subtrahiereButton))
{
zahl--;
fenster.setTextFieldText(zahl);
}
// falls buuton3 geklickt wurde
else if(e.getSource().equals(fenster.button3))
{
if(fenster.locked == false) // wenn txtfield editierbar
{
fenster.sperreTextfield();
}
else if(fenster.locked) // wenn txtfield nicht editierbar
{
fenster.entsperreTextfield();
}
}
}
}
Zuletzt bearbeitet: