M
maho77
Gast
Hallo,
ich bin Java Anfänger und habe mal ein einfaches Beispiel
geschrieben, das mein Problem kurz beschreibt. Es gibt zwei Klassen:
eine für die GUI und eine für die Events. Was ich nun möchte ist,
dass beim Drücken auf den Knopf "Knopf" der Labeltext beliebig
geändert werden kann. Dabei soll die Klassenstruktur so wie sie ist
bestehen bleiben, d.h. die folgende Konstellation möchte ich
vermeiden, da ich GUI und Events voneinander trennen möchte (oder
gibt es Gründe dagegen?):
Hier nun mein Beispiel:
Ich bin für alle Tips oder Links dankbar. Ich hab mich diesbezüglich
schon belesen und möchte auch die Möglichkeit, mit dem WindowListener
vermeiden.
Eine Vermutung ist, dass es über arg0.getSource() klappt, mir fehlt
jedoch der Ansatz weiterzumachen.
Danke,
Mark[/code]
ich bin Java Anfänger und habe mal ein einfaches Beispiel
geschrieben, das mein Problem kurz beschreibt. Es gibt zwei Klassen:
eine für die GUI und eine für die Events. Was ich nun möchte ist,
dass beim Drücken auf den Knopf "Knopf" der Labeltext beliebig
geändert werden kann. Dabei soll die Klassenstruktur so wie sie ist
bestehen bleiben, d.h. die folgende Konstellation möchte ich
vermeiden, da ich GUI und Events voneinander trennen möchte (oder
gibt es Gründe dagegen?):
Code:
class GUI extends JFrame{
private JLabel jLabel = null;
private ...
public static void main(String[] args) {
...
}
class GUIEventListener implements ActionListener{
public void actionPerformed(ActionEvent arg0) {
jLabel.setText("Blabla");
}
}
}
Hier nun mein Beispiel:
Code:
public class GUI extends Frame {
private JPanel jPanel = new JPanel();
private JButton jButton = null;
private JLabel jLabel = null;
public static void main(String[] args) {
GUI g = new GUI();
g.addWindowListener(new WindowListener(){
public void windowClosing(WindowEvent arg0) {
System.exit(0);
}
});
g.setVisible(true);
}
public GUI() {
super();
this.setSize(300,200);
this.setTitle("Frame");
GUIEventListener el = new GUIEventListener();
jButton = new JButton("Knopf");
jButton.addActionListener(el);
jLabel = new JLabel("Text");
jPanel.add(jButton, null);
jPanel.add(jLabel, null);
this.add(jPanel, java.awt.BorderLayout.CENTER);
}
}
class GUIEventListener implements ActionListener{
public void actionPerformed(ActionEvent arg0) {
if(arg0.getActionCommand() == "Knopf"){
System.out.println("Knopf gedrückt");
/*Hier soll jetzt das Label mit einem neuen
* Text versehen werden (JLabel.setText("Hallo"))
*/
}
}
}
Ich bin für alle Tips oder Links dankbar. Ich hab mich diesbezüglich
schon belesen und möchte auch die Möglichkeit, mit dem WindowListener
vermeiden.
Eine Vermutung ist, dass es über arg0.getSource() klappt, mir fehlt
jedoch der Ansatz weiterzumachen.
Danke,
Mark[/code]