Anfänger GUI Problem bei der Ausführung eines sehr einfachen Programms

JonasO

Mitglied
Hi zusammen, ich beginne mich gerade mit GUIs zu beschäftigen zu diesem Zwecke habe ich folgendes einfache Programm geschrieben, leider passiert nicht viel, ich sehe es kurz in der Leiste laden und dann wieder verschwinden ohne das ein Fenster erscheint, vielen Dank im Voraus:
(Benutze Netbeans, Mac)

Java:
package gui_4;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


class EreignisDemo {
    
    public void actionPerformed(ActionEvent einEreignis){
        System.out.println("Der Druckknopf wurde betätigt");
    }
}


package gui_4;

import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.SwingUtilities;




[code=Java]
public class EreignisDemoGUI {

public EreignisDemoGUI(){
initGUI();
}

private void initGUI(){
JFrame einFenster= new JFrame("Fenster der Ereignisquelle");
einFenster.setSize(200, 100);

JButton einDruckknopf = new JButton("Druckknopf");

EreignisDemo einBeobachter = new EreignisDemo();
einDruckknopf.addActionListener((ActionListener) einBeobachter);

einFenster.add(einDruckknopf);

einFenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
einFenster.setVisible(true);
}


public static void main(String args[]){

SwingUtilities.invokeLater(new Runnable(){
public void run(){
new EreignisDemoGUI();
}
});
}
}
[/code]
 
Du musst dein EreignisDemo das ActionListener Interface implementieren lassen. Dann sparst du dir erstens das Casten und dann funktioniert der Code auch:

Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class EreignisDemoGUI {

  public EreignisDemoGUI() {
    initGUI();
  }

  private void initGUI() {
    JFrame einFenster = new JFrame("Fenster der Ereignisquelle");
    einFenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JButton einDruckknopf = new JButton("Druckknopf");

    einDruckknopf.addActionListener(new EreignisDemo());

    einFenster.add(einDruckknopf);

    einFenster.pack();
    einFenster.setVisible(true);
  }

  public static void main(String args[]) {

    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        new EreignisDemoGUI();
      }
    });
  }
}

class EreignisDemo implements ActionListener {

  @Override
  public void actionPerformed(ActionEvent einEreignis) {
    System.out.println("Der Druckknopf wurde betätigt");
  }
}
 

Zurück
Oben