Taschenrechner

Status
Nicht offen für weitere Antworten.

Han

Bekanntes Mitglied
Hallo...fang erst grad mit Swing an und deshalb einige allgemeine Fragen bzw. warum der Taschenrechner nicht funktioniert......

Taschenrechner:

Code:
package Taschenrechner;

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

public class SwingDemo {
	
	public static void main(String[] args) {
		
//		1.Komponenten erzeugen
		final JTextField opd1 = new JTextField();
		final JTextField opd2 = new JTextField();
		
		JButton plus = new JButton("+");
		
		plus.addActionListener(new ActionListener(){	
			public void actionPerformed(ActionEvent e){
				try{
					String s1 = opd1.getText();
					String s2 = opd2.getText();
					int res = Integer.parseInt(s1)+Integer.parseInt(s2);
					opd1.setText(String.valueOf(res));
					opd2.setText("");
				}catch(NumberFormatException ex){}	
			}
		});
		
		JButton minus = new JButton("-");
		
		plus.addActionListener(new ActionListener(){	
			public void actionPerformed(ActionEvent e){
				try{
					String s1 = opd1.getText();
					String s2 = opd2.getText();
					int res = Integer.parseInt(s1)-Integer.parseInt(s2);
					opd1.setText(String.valueOf(res));
					opd2.setText("");
				}catch(NumberFormatException ex){}	
			}
		});
		
		JButton mul = new JButton("*");
		
		plus.addActionListener(new ActionListener(){	
			public void actionPerformed(ActionEvent e){
				try{
					String s1 = opd1.getText();
					String s2 = opd2.getText();
					int res = Integer.parseInt(s1)*Integer.parseInt(s2);
					opd1.setText(String.valueOf(res));
					opd2.setText("");
				}catch(NumberFormatException ex){}	
			}
		});
		
		JButton div = new JButton("/");
		
		plus.addActionListener(new ActionListener(){	
			public void actionPerformed(ActionEvent e){
				try{
					String s1 = opd1.getText();
					String s2 = opd2.getText();
					int res = Integer.parseInt(s1)/Integer.parseInt(s2);
					opd1.setText(String.valueOf(res));
					opd2.setText("");
				}catch(NumberFormatException ex){}	
			}
		});
		
//		2.JPanels erzeugen, Komponenten darin einfügen und mit Layout 
//		Managern ausrichten
		
		JPanel buttons = new JPanel(new FlowLayout());
		buttons.add(plus);
		buttons.add(minus);
		buttons.add(mul);
		buttons.add(div);
		//JFrame erzeugen (Fenster) und JPanel darin einfügen
		JPanel panel = new JPanel(new GridLayout(3,1));
		panel.add(opd1);
		panel.add(opd2);
		panel.add(buttons);
		
		JFrame frame = new JFrame("Taschenrechner");
		frame.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});
		
		frame.setContentPane(panel);
		frame.pack();  //wenn ich das nicht mache dann passt es
//		mir am Anfang das Frame nicht an die Panel an und ich
//        muss das Fenster zu Beginn selber ausrichten
		frame.setVisible(true); //show the frame on the screen
			
	}

}


Zum einem mal weiß ich nicht warum der Taschenrechner nur Blödsinn ausgibt und zum Anderen hätte ich da folgende theoretische Frage:

Ich glaub ich kapier das mit den ActionListenern noch nicht so ganz. Ich sags mal wie ich das sehe:
Bsp.:
Code:
                  JButton plus = new JButton("+");
		
		plus.addActionListener(new ActionListener(){	
			public void actionPerformed(ActionEvent e){
				try{
					String s1 = opd1.getText();
					String s2 = opd2.getText();
					int res = Integer.parseInt(s1)+Integer.parseInt(s2);
					opd1.setText(String.valueOf(res));
					opd2.setText("");
				}catch(NumberFormatException ex){}	
			}
		});


Also ein Button löst ja wenn ich einen draufklicke eine Action aus. Nun muss ich die Action aber genau definieren.
Dazu ist das Interface ActionListener da, welches die Methode actionPerformed beinhaltet.
Ich bastel mir hierbei eine anonyme Unterklasse von ActionListener in der ich genau die Action definiere welche
der Button auslösen soll. Der Sinn des Interface ist ja der dass ich zum Botton dann mehrere ActionListeners mit jeweils unterschiedlichen Aufgaben hinzufügen kann...also man leicht eine Action wieder austauschen kann. In welchen Zusammenhang steht das jetzt aber mit dem Model View Controller Prinzip? Ich hab da noch nicht wirklich einen Überblick.....


mfg,
Hannes
 

Han

Bekanntes Mitglied
Ah....danke.....und wie geht das mit den ActionListener...hab ich da das Prinzip verstanden?

mfg,
Hannes
 

michi2

Bekanntes Mitglied
Tya entweder fragst du den falschen (bin auch kein Java-Freak) oder ich bin nur zu **** um die Frage zu verstehen.
Du kanns einen Actionlistener machen und diesen an mehere Button u. Co geben, meinst du das?
 

Han

Bekanntes Mitglied
Na ja..is dir das Model View Controller Model bekannt? Auf dem baut nämlich das ActionListenerPrinzip auf....nur weiß ich nicht in welchen genauen Zusammenhang bei dem Bsp....bei den Buttons.....mir is die Theorie nicht klar...warum ich überhaupt das ListenerPrinzip brauch....

mfg,
Hannes
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Exelsior JavaFX Taschenrechner mit FX AWT, Swing, JavaFX & SWT 6
melaniemueller Taschenrechner JavaFX AWT, Swing, JavaFX & SWT 4
N JavaFX Einfacher Taschenrechner mit Scene Builder und Java FX AWT, Swing, JavaFX & SWT 0
thor_norsk Taschenrechner AWT, Swing, JavaFX & SWT 8
melaniemueller JavaFX Taschenrechner mit SceneBuilder AWT, Swing, JavaFX & SWT 12
K JavaFX Taschenrechner textField auf 10stellen begrenzen AWT, Swing, JavaFX & SWT 26
L JavaFX javafx.fxml.LoadException bei einem Taschenrechner AWT, Swing, JavaFX & SWT 5
N Swing Taschenrechner GUI AWT, Swing, JavaFX & SWT 13
B Probleme Action Listener Taschenrechner AWT, Swing, JavaFX & SWT 27
O JavaFX mini Taschenrechner! AWT, Swing, JavaFX & SWT 35
N Taschenrechner mit mehreren Rechnungen AWT, Swing, JavaFX & SWT 18
A JavaFX Sehr viele Exceptions bei Taschenrechner mit JavaFx AWT, Swing, JavaFX & SWT 2
K Taschenrechner mit GUI AWT, Swing, JavaFX & SWT 2
L Event Handling Gui für Taschenrechner AWT, Swing, JavaFX & SWT 27
H Swing Taschenrechner GUI AWT, Swing, JavaFX & SWT 5
M Taschenrechner AWT, Swing, JavaFX & SWT 21
T Swing Taschenrechner AWT, Swing, JavaFX & SWT 2
M AWT Java-Taschenrechner, wie Stack richtig verwenden? AWT, Swing, JavaFX & SWT 14
C Grafik Taschenrechner AWT, Swing, JavaFX & SWT 5
H Taschenrechner Coding Erklärung AWT, Swing, JavaFX & SWT 2
Jats Hilfe bei FocusListener für Taschenrechner AWT, Swing, JavaFX & SWT 4
B Taschenrechner mit ComboBox AWT, Swing, JavaFX & SWT 7
S AWT Probleme mit Taschenrechner AWT, Swing, JavaFX & SWT 9
V Bitte um Hilfe bei nem Taschenrechner AWT, Swing, JavaFX & SWT 8
C Taschenrechner in Java AWT, Swing, JavaFX & SWT 7
M MouseEvent JButton Taschenrechner AWT, Swing, JavaFX & SWT 5
K Java-Taschenrechner AWT, Swing, JavaFX & SWT 1
L Taschenrechner mit Klammern AWT, Swing, JavaFX & SWT 11
G Taschenrechner-Problem AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben