Listener

ernst

Top Contributor
Hallo allerseits,
Das folgende Programm soll ein einfacher Taschenrechner sein, der 2 Zahlen addiert.
Habe versucht dies mit dem Entwurfsmuster MVC zu machen.
Leider funktioniert der Listener nicht, d.h. bei einem Klick auf den Button + wird nicht die Methode actionPerformed aufgerufen.
Habe dies mit einer inneren, anonymen Klasse versucht.
Kann mir jemand sagen, warum dies nicht geht und was ich ändern muss, damit es geht ?

mfg
Ernst


Java:
package MainTaschenrechnermvc10;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;


public class TaschenrechnerMVC10 {
	public static void main(String[] args) {
            TRController trController = new TRController();
            TRView trView = new TRView();
            trView.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}



class TRModel{
    private double sum;
    
    public TRModel(){
        reset();
    }
    
    public void addiere(double wert1, double wert2){
        sum = wert1 + wert2;
    }
 
    public void reset(){
        sum = 0;
    }

    public double getSumme(){
        return sum;
    }
}

class TRView extends JFrame{
	// Stelle in MyFenster deklarieren, an die montiert wird.
	private Container mycont;
	// Buttons deklarieren
	private JButton mybtPlus;
	// Textfelder deklarieren
	private JTextField mytfZahl1;
	private JTextField mytfZahl2;
	private JTextField mytfErg;
	private JLabel dummyLabel1;
	private JLabel dummyLabel2;	
	// Eine Zeichenfläche deklarieren
	private JPanel myp;
	private GridLayout myGL23;
	
	// Konstruktor
	public TRView(){
		// Liefert die Stelle in MyFenster, an die montiert wird.
		mycont = getContentPane();
		// Erzeugt jeweils ein Button
		mybtPlus=new JButton("+");
		// Erzeugt jeweils ein einzeiliges Textfeld mit dem vorgegebenen
		// Text und der vorgegebenen Spaltenzahl. Dieser Text kann 
		// (im Gegensatz zu einem Label) editiert werden
		mytfZahl1=new JTextField("hier 1. Zahl eingeben",30);
		mytfZahl2=new JTextField("hier 2. Zahl eingeben",30);
		mytfErg=new JTextField("hier kommt das Ergebnis",30);
		// Ein paar Dummy Labels
		dummyLabel1 = new JLabel();
		dummyLabel2 = new JLabel();		
		// Erzeugt jeweils ein Label (Beschriftung) mit dem vorgegebenen 
		// Text Dieser Text kann (im Gegensatz zu einem Textfeld) nicht 
		// editiert werden
		// Erzeugt eine Zeichenfläche
		myp = new JPanel();
		// Erzeugt ein Layout
		myGL23 = new GridLayout(2,3);
		// Ordnet das Layout der Zeichenfläche (Panel) myp zu
		// ("formatiert" die Zeichenfläche damit)
		myp.setLayout(myGL23);
		// Montiert die grafischen Komponenten in die Zeichenfläche
		myp.add(mytfZahl1);
		myp.add(mytfZahl2);		
		myp.add(mytfErg);		
		myp.add(mybtPlus);
		myp.add(dummyLabel1);
		myp.add(dummyLabel2);		
		// Montiert die Zeichenfläche in das Fenster MyFenster
		mycont.add(myp);
		// Fensterüberschrift festlegen
		setTitle("Einfaches MVC");
		// Koordinaten des linken, oberen Ecks des Fensters festlegen
		// Koordinate x = 30, Koordinate y = 60.		
		setLocation(30,60);
		// Die Breite des Fensters in x-Richtung = 600
		// Die Breite des Fensters in y-Richtung = 400		
		setSize(600,400);
		// Macht das Fenster sichtbar
		setVisible(true);
	}

	public String getJTextField1(){
		return mytfZahl1.getText();	
	}

	
	public String getJTextField2(){
		return mytfZahl2.getText();	
	}
	
	
	public String getJTextFieldErg(){
		return mytfErg.getText();	
	}	
    
	public void setJTextField1(String str){
		this.mytfZahl1.setText(str);	
	}

	
	public void setJTextField2(String str){
		this.mytfZahl2.setText(str);
	}
	
	
	public void setJTextFieldErg(String str){
		this.mytfErg.setText(str);
	}	

        public void setAdditionsListener(ActionListener l){
            mybtPlus.addActionListener(l);
        }
    
}

class TRController{
    private TRView trView;
    private TRModel trModel;    
    
    public TRController(){
        trView = new TRView();
        trModel = new TRModel();        
        addListener();
    }
    
    public void addListener(){
        trView.setAdditionsListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                double wert1 = Double.valueOf(trView.getJTextField1());
                double wert2 = Double.valueOf(trView.getJTextField2());
                trModel.addiere(wert1, wert2);
                trView.setJTextFieldErg(String.valueOf(trModel.getSumme()));
                System.out.println("Hallo");
            }
        });
    }
}
 
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast
Du erstellst zwei unterschiedliche Instanzen von TRView, einmal im Controller und einmal in der main. Nur bei der im Controller erstellten Instanz setzt du den ActionListener.
 
S

SlaterB

Gast
da es gerade nicht allzu sehr stört, kann ich mir den Hinweis erlauben:
verzichte bitte eher auf 'einfache Frage', 'warum funktioniert x nicht?' im Titel

ich habe nur 'x' im Titel übrig gelassen und der Informationsgehalt ist derselbe ;)
dass du ein Frage hast, dass irgendwas nicht funktioniert gilt für jedes Thema, einfach oder nicht wird sich ergeben

irgendwas individuelles wie 'Taschenrechner' könnte noch mitaufgenommen werden,
als markante Erinnerung worum es im Thema geht
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
padde479 MenuItem MouseEvent/-Listener AWT, Swing, JavaFX & SWT 5
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
G listener repaint() - verschiedene Darstellung AWT, Swing, JavaFX & SWT 24
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
K Warum genau hat man einen Listener, dann ein Event und was ist ein Adapter AWT, Swing, JavaFX & SWT 2
J Key-Listener in Java AWT, Swing, JavaFX & SWT 37
S JavaFX - mit Listener Veränderungen in einer TableView abhören AWT, Swing, JavaFX & SWT 3
N JavaFX 1 Listener für mehrere ChoiceBoxen AWT, Swing, JavaFX & SWT 3
B Probleme Action Listener Taschenrechner AWT, Swing, JavaFX & SWT 27
M List Listener AWT, Swing, JavaFX & SWT 37
I AWT Listener während man in anderem Fenster ist AWT, Swing, JavaFX & SWT 4
U Funktionsweise Listener AWT, Swing, JavaFX & SWT 1
L TextField Listener AWT, Swing, JavaFX & SWT 13
K Nullpointer Combobox Listener AWT, Swing, JavaFX & SWT 2
L JavaFX Image im ImageView auf Scroll Listener reagieren AWT, Swing, JavaFX & SWT 5
Salo JTabel Selection listener Bsp. AWT, Swing, JavaFX & SWT 5
J JTable Selection Listener funktioniert nicht AWT, Swing, JavaFX & SWT 4
J Action Listener Rückgabewert AWT, Swing, JavaFX & SWT 14
MaxG. Swing JMenu einen Listener Hinzufügen AWT, Swing, JavaFX & SWT 25
L JavaFX Verbindung zwischen Beschreibung und Listener (Codebehind Klasse) AWT, Swing, JavaFX & SWT 4
T Swing Methode in Listener aufrufen AWT, Swing, JavaFX & SWT 3
S Swing Tabellen - Listener & richtige Row AWT, Swing, JavaFX & SWT 3
J Java -8 Action Listener für mehrere Buttons AWT, Swing, JavaFX & SWT 9
S Erste Schritte mit GUI - Fileverarbeitung, Listener,... AWT, Swing, JavaFX & SWT 10
M JButton - Listener AWT, Swing, JavaFX & SWT 1
R Swing Mehrere JTextFields mit einem Document Listener AWT, Swing, JavaFX & SWT 2
K JavaFX Focus Listener für gesamte Scene AWT, Swing, JavaFX & SWT 1
M Key Listener reagiert nicht AWT, Swing, JavaFX & SWT 4
F In Action Listener TextFields einlesen und prüfen. Abbruch bei falschen Eingaben. Wie mache ich das? AWT, Swing, JavaFX & SWT 2
M Listener funktioniert nicht AWT, Swing, JavaFX & SWT 7
S Swing JComboBox mit Listener aktualisieren AWT, Swing, JavaFX & SWT 13
elischa JFrame über mehrere JPanel und Listener AWT, Swing, JavaFX & SWT 17
llabusch Event Handling Listener spielt verrückt AWT, Swing, JavaFX & SWT 8
kaoZ Swing Architektonisches Problem / Listener / MVC AWT, Swing, JavaFX & SWT 14
H org.eclipse.swt.widgets.Scale MouseRelease listener AWT, Swing, JavaFX & SWT 1
MaDDin-94 Swing Listener reagiert nicht immer AWT, Swing, JavaFX & SWT 2
A JLabel im Listener färben AWT, Swing, JavaFX & SWT 11
M Key-,... Listener funktioniert nicht immer AWT, Swing, JavaFX & SWT 2
P Event Handling Listener beim öffnen von einem JPopupMenu AWT, Swing, JavaFX & SWT 3
A Listener für JGTextField AWT, Swing, JavaFX & SWT 2
J Programmierstil: Kommunikation Listener und GUI AWT, Swing, JavaFX & SWT 3
B JTable Renderer / Listener AWT, Swing, JavaFX & SWT 7
M Swing JList Listener AWT, Swing, JavaFX & SWT 20
K Action Listener implementieren über Objekt AWT, Swing, JavaFX & SWT 14
M SWING Listener ohne Wirkung AWT, Swing, JavaFX & SWT 2
P Listener Auswahl Tabelle AWT, Swing, JavaFX & SWT 6
P JPanel- Listener durch JTextArea aktivieren AWT, Swing, JavaFX & SWT 8
J Swing dragging listener AWT, Swing, JavaFX & SWT 5
H Problem mit dem Action listener.... AWT, Swing, JavaFX & SWT 2
J Frame mit Button erstellen - Warum ist es nötig, Frame über Unterklasse zu erstellen? (Reg Listener) AWT, Swing, JavaFX & SWT 2
M Fenster schließen - Listener AWT, Swing, JavaFX & SWT 5
G SWT TreeViewer - drop listener austauschen AWT, Swing, JavaFX & SWT 2
S Action Listener in innerer Klasse ausführen. AWT, Swing, JavaFX & SWT 8
J Sinn eines Selection Listener AWT, Swing, JavaFX & SWT 5
M JList mit DefaultListModel und listener AWT, Swing, JavaFX & SWT 4
M comboBox Listener? AWT, Swing, JavaFX & SWT 2
T Listener in anderen Panel deaktivieren AWT, Swing, JavaFX & SWT 3
A Swing Suche Listener für beliebige Änderung an GUI Items/Controls AWT, Swing, JavaFX & SWT 8
T SWT: Listener auf einem Button reagiert nicht AWT, Swing, JavaFX & SWT 2
L Swing JTextField Content-Listener AWT, Swing, JavaFX & SWT 4
P AWT Wie kann mein listener den Inhalt eines anderen Textfelds ändern? AWT, Swing, JavaFX & SWT 10
M Ansätze zur Kombination mehrerer Listener für Interaktion AWT, Swing, JavaFX & SWT 19
C JLabel Listener auf Textänderung? AWT, Swing, JavaFX & SWT 5
M Mouse Wheel Listener reagiert mehrmals AWT, Swing, JavaFX & SWT 5
F SWT Button listener richtig erstellen AWT, Swing, JavaFX & SWT 2
El_Lobo Swing Problem bei Methodenaufruf in innerer Klasse bei Listener AWT, Swing, JavaFX & SWT 3
S Wem füge ich welchen Listener hinzu? AWT, Swing, JavaFX & SWT 4
R Durch Listener lässt sich Programm nicht mehr ausführen AWT, Swing, JavaFX & SWT 4
T Callback vs. Event listener AWT, Swing, JavaFX & SWT 7
S Swing JTree und seine Listener... AWT, Swing, JavaFX & SWT 4
E JComboBox Listener AWT, Swing, JavaFX & SWT 2
AyKay SWT (alle) Listener bzw. ModifyEventListener entfernen AWT, Swing, JavaFX & SWT 2
S jTextField Listener AWT, Swing, JavaFX & SWT 7
E Listener, werte in andere Klasse übernehmen AWT, Swing, JavaFX & SWT 11
L Action listener in bestimmter spalte AWT, Swing, JavaFX & SWT 2
J AWT Action Listener etc. AWT, Swing, JavaFX & SWT 7
xehpuk Swing Listener für JPopupMenu AWT, Swing, JavaFX & SWT 3
F JCalendar mouseclick listener AWT, Swing, JavaFX & SWT 2
W AWT Listener bei TrayIcon AWT, Swing, JavaFX & SWT 2
K Swing Listener bei JPopupMenu AWT, Swing, JavaFX & SWT 9
E Swing JTextField Listener nach Update?! AWT, Swing, JavaFX & SWT 2
T TransformGroup Listener AWT, Swing, JavaFX & SWT 8
O Swing JTable Listener AWT, Swing, JavaFX & SWT 2
O Collection Listener AWT, Swing, JavaFX & SWT 6
L AWT Paint(g) im Listener aufrufen AWT, Swing, JavaFX & SWT 2
G JTree - Observer oder Listener? AWT, Swing, JavaFX & SWT 6
Avalarion SWT Listener auf Label oder Text Teile AWT, Swing, JavaFX & SWT 10
C Ermitteln ob JComponent einen Listener besitzt AWT, Swing, JavaFX & SWT 2
L JTextfield Listener AWT, Swing, JavaFX & SWT 3
C Listener Probleme AWT, Swing, JavaFX & SWT 6
N Listener für Variable AWT, Swing, JavaFX & SWT 4
C Swing Listener für TabPanel AWT, Swing, JavaFX & SWT 8
B Line aus Listener? AWT, Swing, JavaFX & SWT 11
G Model,Listener und background jobs AWT, Swing, JavaFX & SWT 4
1 JList - clearSelection nicht berücksichtigen im Listener AWT, Swing, JavaFX & SWT 7
I Swing Listener auf JPanel AWT, Swing, JavaFX & SWT 9
Dit_ MutableComboBoxModel | Listener fehlt ? AWT, Swing, JavaFX & SWT 6
T Swing JSlider und Adjustment-Listener wollen nicht so recht AWT, Swing, JavaFX & SWT 2
N Swing Textfield listener AWT, Swing, JavaFX & SWT 2
S Combo Box action listener AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben