ActionListener

Status
Nicht offen für weitere Antworten.
A

aerus

Gast
Hallo,

ich möchte ein Pferderennenprogramm programmieren, wo man aus einer Combobox ein Pferd wählt, dadrunter den Einstaz eingibt, woraus dann die Quote berechnet wird. Ich habe bereits das Interface gemacht nur ich weiss nicht, wie ich die ActionListener hinzufüge. Das Buch mir dem ich arbeite (Java 2 in 21 Tagen) gibt mir auch keine verlässliche Auskunft darüber. Könnte mir jemand vielleicht die Listener für ComboBox und Einsatzfeld schreiben? Das ist sehr wichtig.

Hier ist das Interface:

Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Wette extends JFrame {

    void buildConstraints(GridBagConstraints gbc, int gx, int gy,
        int gw, int gh, int wx, int wy) {

        gbc.gridx = gx;
        gbc.gridy = gy;
        gbc.gridwidth = gw;
        gbc.gridheight = gh;
        gbc.weightx = wx;
        gbc.weighty = wy;
    }

    public Wette() {
        super("Pferderennen");
        setSize(400, 200);
        GridBagLayout gridbag = new GridBagLayout();
        GridBagConstraints constraints = new GridBagConstraints();
        JPanel pane = new JPanel();
        pane.setLayout(gridbag);

        // title label
        buildConstraints(constraints, 1, 0, 5, 1, 0, 0);
        constraints.fill = GridBagConstraints.HORIZONTAL;
        constraints.anchor = GridBagConstraints.EAST;
        JLabel label0 = new JLabel("Sieg Wette", JLabel.LEFT);
        gridbag.setConstraints(label0, constraints);
        pane.add(label0);
        
        // quoten label
        buildConstraints(constraints, 0, 2, 1, 1, 0, 0);
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.WEST;
        JLabel labelq = new JLabel("Quoten", JLabel.CENTER);
        gridbag.setConstraints(labelq, constraints);
        pane.add(labelq);
        
        // pf_wählen label
        buildConstraints(constraints, 0, 3, 1, 1, 1, 1);
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.WEST;
        JLabel labelw = new JLabel("Pferde wählen :", JLabel.CENTER);
        gridbag.setConstraints(labelw, constraints);
        pane.add(labelw);
        
        // einsatz label
        buildConstraints(constraints, 0, 4, 1, 1, 1, 1);
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.WEST;
        JLabel labele = new JLabel("Ihr Einsatz eingeben :", JLabel.CENTER);
        gridbag.setConstraints(labele, constraints);
        pane.add(labele);
        
        // quote_1 label
        buildConstraints(constraints, 1, 1, 1, 1, 1, 1);
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.CENTER;
        JLabel label1 = new JLabel("1", JLabel.CENTER);
        gridbag.setConstraints(label1, constraints);
        pane.add(label1);
        
        // quote_2 label
        buildConstraints(constraints, 2, 1, 1, 1, 1, 1);
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.CENTER;
        JLabel label2 = new JLabel("2", JLabel.CENTER);
        gridbag.setConstraints(label2, constraints);
        pane.add(label2);
        
        // quote_3 label
        buildConstraints(constraints, 3, 1, 1, 1, 1, 1);
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.CENTER;
        JLabel label3 = new JLabel("3", JLabel.CENTER);
        gridbag.setConstraints(label3, constraints);
        pane.add(label3);
        
        // quote_4 label
        buildConstraints(constraints, 4, 1, 1, 1, 1, 1);
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.CENTER;
        JLabel label4 = new JLabel("4", JLabel.CENTER);
        gridbag.setConstraints(label4, constraints);
        pane.add(label4);
        
        // quote_5 label
        buildConstraints(constraints, 5, 1, 1, 1, 1, 1);
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.CENTER;
        JLabel label5 = new JLabel("5", JLabel.CENTER);
        gridbag.setConstraints(label5, constraints);
        pane.add(label5);
        
        // quote_1 feld
        buildConstraints(constraints, 1, 2, 1, 1, 1, 1);
        constraints.fill = GridBagConstraints.HORIZONTAL;
        JTextField tfield1 = new JTextField();
        tfield1.setEditable(false);
        gridbag.setConstraints(tfield1, constraints);
        pane.add(tfield1);
        
        // quote_2 feld
        buildConstraints(constraints, 2, 2, 1, 1, 1, 1);
        constraints.fill = GridBagConstraints.HORIZONTAL;
        JTextField tfield2 = new JTextField();
        tfield2.setEditable(false);
        gridbag.setConstraints(tfield2, constraints);
        pane.add(tfield2);
        
        // quote_3 feld
        buildConstraints(constraints, 3, 2, 1, 1, 1, 1);
        constraints.fill = GridBagConstraints.HORIZONTAL;
        JTextField tfield3 = new JTextField();
        tfield3.setEditable(false);
        gridbag.setConstraints(tfield3, constraints);
        pane.add(tfield3);
        
        // quote_4 feld
        buildConstraints(constraints, 4, 2, 1, 1, 1, 1);
        constraints.fill = GridBagConstraints.HORIZONTAL;
        JTextField tfield4 = new JTextField();
        tfield4.setEditable(false);
        gridbag.setConstraints(tfield4, constraints);
        pane.add(tfield4);
        
        // quote_5 feld
        buildConstraints(constraints, 5, 2, 1, 1, 1, 1);
        constraints.fill = GridBagConstraints.HORIZONTAL;
        JTextField tfield5 = new JTextField();
        tfield5.setEditable(false);
        gridbag.setConstraints(tfield5, constraints);
        pane.add(tfield5);
        

        // Pferd wählen

        buildConstraints(constraints, 1, 3, 5, 1, 1, 1);
        constraints.fill = GridBagConstraints.HORIZONTAL;
        JComboBox jcb = new JComboBox();
          jcb.addItem("");
          jcb.addItem("Pferd 1");
          jcb.addItem("Pferd 2");
          jcb.addItem("Pferd 3");
          jcb.addItem("Pferd 4");
          jcb.addItem("Pferd 5");

        gridbag.setConstraints(jcb, constraints);
        pane.add(jcb);


        // einsatz feld
        buildConstraints(constraints, 2, 4, 1, 1, 1, 1);
        constraints.fill = GridBagConstraints.HORIZONTAL;
        JTextField tfieldE = new JTextField();
        gridbag.setConstraints(tfieldE, constraints);
        pane.add(tfieldE);
        
        // euro label
        buildConstraints(constraints, 3, 4, 1, 1, 1, 1);
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.WEST;
        JLabel labeleur = new JLabel("€", JLabel.CENTER);
        gridbag.setConstraints(labeleur, constraints);
        pane.add(labeleur);


        // Content Pane
        setContentPane(pane);
     }
        public static void main(String[] arguments) {
        Wette frame = new Wette();
        ExitWindow exit = new ExitWindow();
        frame.addWindowListener(exit);
        frame.show();
    }
  }



class ExitWindow extends WindowAdapter {
    public void windowClosing(WindowEvent e) {
        System.exit(0);
    }
}

danke schonmal im Voraus.
 

The_S

Top Contributor
Mach halt nen neuen Button und füge dem dann deinen ActionListener hinzu.
Wegen deinem GirdBagLayout nehme ich mal an du bist am Tag 10. Freu dich morgen kommen die ganzen Listener dazu ;).

Vorneweg

Code:
deineClasse extends ... implements ActionListener {
...
JButton button = new JButton("OK");
...
button.addActionListener(this);
...
public void actionPerfromed(ActionEvent evt) {
    
    Object source = evt.getSource();
    if (source == button) {
        // mach was
...
 

L-ectron-X

Gesperrter Benutzer
Immer wenn ich höre/lese: "Das ist sehr wichtig." schrillen bei mir die Hausaufgaben-Alarmglocken...
 

tini

Bekanntes Mitglied
L-ectron-X hat gesagt.:
Immer wenn ich höre: "Das ist sehr wichtig." schrillen bei mir die Hausaufgaben-Alarmglocken...
nicht nur bei dir :wink:

Auch die Formulierung "Könnte mir jemand vielleicht die Listener für ComboBox und Einsatzfeld schreiben?" finde ich ziemlich bedenklich. Wo soll denn dann der Lerneffekt herkommen?
 
G

Guest

Gast
Hobbit_Im_Blutrausch hat gesagt.:
Mach halt nen neuen Button und füge dem dann deinen ActionListener hinzu.
Wegen deinem GirdBagLayout nehme ich mal an du bist am Tag 10. Freu dich morgen kommen die ganzen Listener dazu ;).

Vorneweg

Code:
deineClasse extends ... implements ActionListener {
...
JButton button = new JButton("OK");
...
button.addActionListener(this);
...
public void actionPerfromed(ActionEvent evt) {
    
    Object source = evt.getSource();
    if (source == button) {
        // mach was
...

hmm, aber ich brauche einen Listener für die Combobox und nicht für 'nen button. Du hast Recht, bin am Tag 10, aber habe schon auch in das nächet Kapitel reingeschaut und da sind diverse Listener aufgeliste und ich blicke gar nicht mehr durch welcher für was ist.. Ist bei JComboBox ein IntemListener? Wenn ja, wie mache ich, dass er eine sich eine Auswahl merkt?
 
G

Guest

Gast
tini hat gesagt.:
L-ectron-X hat gesagt.:
Immer wenn ich höre: "Das ist sehr wichtig." schrillen bei mir die Hausaufgaben-Alarmglocken...
nicht nur bei dir :wink:

Auch die Formulierung "Könnte mir jemand vielleicht die Listener für ComboBox und Einsatzfeld schreiben?" finde ich ziemlich bedenklich. Wo soll denn dann der Lerneffekt herkommen?

ich kann euch gut verstehen, aber wenn ich mir alles selber beibringen muss und unser Lehrer nicht in der Lage ist uns was zu erklären (weil er gleichzeitig zwei Klassen betreut und die meiste Zeit bei den Zwölfern sitzt, die in Informatik in Mehrzahl sind). Ich bin ein Autodidakt und kann durchaus auch was selber lernen, nur ich brauche immer Beipiele, die ich auseinandernehme und versuche zu verstehen. Wenn mir jemand ein Beispiel bezogen auf das konkrette Programm gibt, dann kann ich es analog zu anderen Programmen verwenden...
 

The_S

Top Contributor
Genauso wie beim ActionListener

Code:
deineClasse extends ... implements ItemListener { 
... 
JComboBox box = new JComboBox(); 
... 
box.addItemListener(this); 
... 
public void itemStateChanged(ItemEvent evt) { 
    
    Object source = evt.getSource(); 
    if (source == box) { 
        // mach was 
...

In den FAQ steht noch ein guter Beitrag, was du machen kannst, wenn itemStateChanged 2x aufgerufen wird ;)
 
G

Guest

Gast
Hobbit_Im_Blutrausch hat gesagt.:
Genauso wie beim ActionListener

Code:
deineClasse extends ... implements ItemListener { 
... 
JComboBox box = new JComboBox(); 
... 
box.addItemListener(this); 
... 
public void itemStateChanged(ItemEvent evt) { 
    
    Object source = evt.getSource(); 
    if (source == box) { 
        // mach was 
...

In den FAQ steht noch ein guter Beitrag, was du machen kannst, wenn itemStateChanged 2x aufgerufen wird ;)

danke schon Mal für die Antwor, ich aber doch noch ein Problem:

in deinem Code wird ja eine Box neu erstellt. Aber was, wenn ich schon eine Box habe, wie füge ich dann in diesem konkretten Fall einen Listener hinzu?

Code:
 // Pferd wählen 
buildConstraints(constraints, 1, 3, 5, 1, 1, 1);         
constraints.fill = GridBagConstraints.HORIZONTAL;         
JComboBox jcb = new JComboBox();           
jcb.addItem("");           
jcb.addItem("Pferd 1");           
jcb.addItem("Pferd 2");           
jcb.addItem("Pferd 3");           
jcb.addItem("Pferd 4");           
jcb.addItem("Pferd 5"); 
gridbag.setConstraints(jcb, constraints);         
pane.add(jcb);
 
G

Guest

Gast
Hobbit_Im_Blutrausch hat gesagt.:
???

Hobbit_Im_Blutrausch hat gesagt.:
Code:
box.addItemListener(this);

dann kriege ich das hier raus:

Compiliere C:\java\Wette.java mit Java-Compiler
Wette.java:152: addItemListener(java.awt.event.ItemListener) in javax.swing.JComboBox cannot be applied to (Wette)
jcb.addItemListener(this);
^
1 error
 

tini

Bekanntes Mitglied
Anonymous hat gesagt.:
ich kann euch gut verstehen, aber wenn ich mir alles selber beibringen muss und unser Lehrer nicht in der Lage ist uns was zu erklären (weil er gleichzeitig zwei Klassen betreut und die meiste Zeit bei den Zwölfern sitzt, die in Informatik in Mehrzahl sind). Ich bin ein Autodidakt und kann durchaus auch was selber lernen, nur ich brauche immer Beipiele, die ich auseinandernehme und versuche zu verstehen. Wenn mir jemand ein Beispiel bezogen auf das konkrette Programm gibt, dann kann ich es analog zu anderen Programmen verwenden...

Das ist ja schön und gut, aber es gibt doch bei weitem genug Beispiele im Internet. Einfach mal Google bemühen. Zum Thema Listener gibts hier ziemlich viele Beispiele:
http://javaalmanac.com/cgi-bin/search/find.pl?words=listener
Oder du schaust mal in die API-Doku zu Java. Da findet sich zum Beispiel beim Thema JComboBox ein "How to ...":
http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html
Da wird auch was über Listener gesagt.

Die Beispiele sind zwar nicht auf dein konkretes Programm bezogen, aber so allgemein, dass du in der Lage sein solltest, das auf dein Programm anzuwenden.
 
G

Guest

Gast
tini hat gesagt.:
Anonymous hat gesagt.:
ich kann euch gut verstehen, aber wenn ich mir alles selber beibringen muss und unser Lehrer nicht in der Lage ist uns was zu erklären (weil er gleichzeitig zwei Klassen betreut und die meiste Zeit bei den Zwölfern sitzt, die in Informatik in Mehrzahl sind). Ich bin ein Autodidakt und kann durchaus auch was selber lernen, nur ich brauche immer Beipiele, die ich auseinandernehme und versuche zu verstehen. Wenn mir jemand ein Beispiel bezogen auf das konkrette Programm gibt, dann kann ich es analog zu anderen Programmen verwenden...

Das ist ja schön und gut, aber es gibt doch bei weitem genug Beispiele im Internet. Einfach mal Google bemühen. Zum Thema Listener gibts hier ziemlich viele Beispiele:
http://javaalmanac.com/cgi-bin/search/find.pl?words=listener
Oder du schaust mal in die API-Doku zu Java. Da findet sich zum Beispiel beim Thema JComboBox ein "How to ...":
http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html
Da wird auch was über Listener gesagt.

Die Beispiele sind zwar nicht auf dein konkretes Programm bezogen, aber so allgemein, dass du in der Lage sein solltest, das auf dein Programm anzuwenden.

Vielen Dank, ich habe in der Zwischenzeit auch was gefunden, aber die Seiten sind auch sehr nützlich. Danke!!!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E ActionListener Java Basics - Anfänger-Themen 4
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
C JButton reagiert nicht auf actionListener Java Basics - Anfänger-Themen 15
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
J Array Actionlistener Java Basics - Anfänger-Themen 9
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
P Erste Schritte ActionListener Java Basics - Anfänger-Themen 2
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
J Erste Schritte Actionlistener für tbar/ JButton Java Basics - Anfänger-Themen 15
krgewb ActionListener Java Basics - Anfänger-Themen 1
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
F ActionListener mit Files etc Java Basics - Anfänger-Themen 12
N Probleme mit dem ActionListener Java Basics - Anfänger-Themen 4
CptK Auf ActionListener von anderer Klass aus zugreifen Java Basics - Anfänger-Themen 5
F Mehrere Buttons mit einem ActionListener abdecken Java Basics - Anfänger-Themen 24
U ActionListener mit JMenuItems verknüpfen Java Basics - Anfänger-Themen 1
S in ActionListener auf Eingabe aus anderem Frame warten Java Basics - Anfänger-Themen 2
L Problem bei Java-ActionListener Java Basics - Anfänger-Themen 4
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
D Einen Wert unter einen ActionListener weitergeben Java Basics - Anfänger-Themen 1
T Übernahme einer Variablen im ActionListener/ActionEvent Java Basics - Anfänger-Themen 2
JavaNewbie2.0 ActionListener Java Basics - Anfänger-Themen 11
Voreck Actionlistener problem Java Basics - Anfänger-Themen 1
G Im ActionListener eine "äußere" Variable verändern Java Basics - Anfänger-Themen 13
T Fehler beim ActionListener Java Basics - Anfänger-Themen 2
M public static int in ActionListener Java Basics - Anfänger-Themen 6
S actionlistener timer Java Basics - Anfänger-Themen 9
J Interface ActionListener in eigener Klasse Java Basics - Anfänger-Themen 27
P aus ActionListener auf HauptFrame zugreifen Java Basics - Anfänger-Themen 4
A Klassen Bool Actionlistener Java Basics - Anfänger-Themen 2
K Methoden ActionListener wird übersprungen Java Basics - Anfänger-Themen 3
S actionlistener Java Basics - Anfänger-Themen 29
S ActionListener und Statische Variablen Java Basics - Anfänger-Themen 4
J ActionListener Java Basics - Anfänger-Themen 5
A ActionListener Java Basics - Anfänger-Themen 9
R Problem mit ActionListener für Buttons Java Basics - Anfänger-Themen 5
Z ActionListener wird nicht erkannt? Java Basics - Anfänger-Themen 5
T ActionListener Source vergleichen Java Basics - Anfänger-Themen 8
T Frage zum ActionListener Java Basics - Anfänger-Themen 5
R ActionListener mit for Schleife füllen. Java Basics - Anfänger-Themen 4
K Button's mit versch. Aufgaben/ActionListener Java Basics - Anfänger-Themen 12
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
I ActionListener reagiert nicht Java Basics - Anfänger-Themen 6
N Probleme mit ActionListener und Logischer Abfrage Java Basics - Anfänger-Themen 4
D Erste Schritte Buttons mit actionlistener Problem Java Basics - Anfänger-Themen 3
S JButton mit ActionListener Java Basics - Anfänger-Themen 5
S ActionListener, Methoden und Variablen Java Basics - Anfänger-Themen 4
X Variablen Actionlistener | Variablen-namen Java Basics - Anfänger-Themen 5
G ActionListener implementieren Java Basics - Anfänger-Themen 12
T Erste Schritte Berechnete Variable im ActionListener zurückführen Java Basics - Anfänger-Themen 6
D Panel sichtbar/unsichtbar machen im ActionListener Java Basics - Anfänger-Themen 3
U JFrame durch ActionListener erweitern Java Basics - Anfänger-Themen 4
M Button , actionlistener Java Basics - Anfänger-Themen 11
P Erste Schritte JTable mit Daten aus Acces DB füllen und Actionlistener einsetzen Java Basics - Anfänger-Themen 29
M Actionlistener Java Basics - Anfänger-Themen 9
D Problem mit ausgelagertem Actionlistener Java Basics - Anfänger-Themen 4
D KeyListener und ActionListener Problem Java Basics - Anfänger-Themen 6
M Klassen Durch den ActionListener das GUI einer anderen Klasse verändern Java Basics - Anfänger-Themen 8
T NullPointerException im ActionListener Java Basics - Anfänger-Themen 3
C Erste Schritte GUI - ActionListener - Exception Nullpointer Java Basics - Anfänger-Themen 5
Kenan89 ActionListener in eigene Klasse Java Basics - Anfänger-Themen 8
E JMenu ActionListener reagiert nicht? Java Basics - Anfänger-Themen 6
V ActionListener in einer for-Schleife Java Basics - Anfänger-Themen 2
S Erste Schritte ActionListener auf Buttons einrichten Java Basics - Anfänger-Themen 3
M Variablen Variable lässt sich durch ActionListener nicht ändern Java Basics - Anfänger-Themen 5
P ActionListener Action Event Java Basics - Anfänger-Themen 5
L ActionListener zerschießt AnchorLayout Java Basics - Anfänger-Themen 8
D ActionListener braucht zwei Klicks auf Button??? Java Basics - Anfänger-Themen 2
M Methoden Timer in ActionListener aufrufen Java Basics - Anfänger-Themen 2
Y Actionlistener passt nicht zu Dataset Java Basics - Anfänger-Themen 6
W Problem mit FileWriter / ActionListener Java Basics - Anfänger-Themen 6
F actionListener Java Basics - Anfänger-Themen 3
T ActionListener auslagern Java Basics - Anfänger-Themen 14
S Actionlistener funktionieren nicht in der .jar Java Basics - Anfänger-Themen 9
E ActionListener abwarten lassen? Java Basics - Anfänger-Themen 11
E ActionListener in anderer Klasse erkennen Java Basics - Anfänger-Themen 13
H ActionListener Verbesserung möglich? (This) Java Basics - Anfänger-Themen 3
E ActionListener erkennt instanz nicht Java Basics - Anfänger-Themen 9
V ActionListener bei vielen Modulen Java Basics - Anfänger-Themen 3
J ActionListener Java Basics - Anfänger-Themen 2
T JLabel durch ActionListener ändern Java Basics - Anfänger-Themen 4
S ActionListener Java Basics - Anfänger-Themen 4
U actionListener - eine Kleine Frage Java Basics - Anfänger-Themen 7
K Actionlistener Java Basics - Anfänger-Themen 7
M ActionListener außerhalb des EDT ausführen Java Basics - Anfänger-Themen 2
A ActionListener im JMenu - Problem Java Basics - Anfänger-Themen 2
M ActionListener reagiert nicht Java Basics - Anfänger-Themen 4
N ActionListener + GUI Java Basics - Anfänger-Themen 8
H Bewegtes Bild im ActionListener [Problem] Java Basics - Anfänger-Themen 12
D Liste+ActionListener Java Basics - Anfänger-Themen 6
L wie Jframe an ActionListener übergeben Java Basics - Anfänger-Themen 4
U ActionListener und KeyListener - KeyListener funktioniert nicht Java Basics - Anfänger-Themen 2
A JButton ActionListener nach einmaligem Ausführen zurücksetzen Java Basics - Anfänger-Themen 13
Luk10 Problem mit ActionListener Java Basics - Anfänger-Themen 6
R Viereck zeichnen über TextField-Eingabe /ActionListener Java Basics - Anfänger-Themen 9
C ActionListener problem beim starten von programmen Java Basics - Anfänger-Themen 3
C ActionListener problem Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben