Innerhalb eines ActionEvents Eingaben tätigen

Status
Nicht offen für weitere Antworten.
A

Anfaenger

Gast
Hallo,
ich hab da mal eine Frage ich will einen kleinen taschenrechner machen und der hat wie ein einfacher taschenrechner
nur eine zeile für eingaben und ausgaben. ihr wisst sicher was ich meine
Display(( 4)) Tastendruck + Display(( _)) Tastendruck 9 Display(( 13)) versteht ihr immer wenn ich eine Eingabe mache brauche ich noch eine zweite um das ganze in einem TextField anzeigen zu können nur
wie mach ich das wenn ich bereits das Event ausgelöst habe?

Danke für Hilfe im Vorhinein
 
B

Beni

Gast
ihr wisst sicher was ich meine
Sorry, nein, wir sind keine Hellseher.

Grundsätzlich kannst du für ein Textfeld jederzeit "setText" aufrufen...
... mir ist dein Problem nicht klar.

Kannst du mal Code posten?, vielleicht hilft das.
 
G

Guest

Gast
Der geht noch nicht also ich versuchs besser zu erklären ich habe ein textfeld für eine eingabe und
4 funktionen für die grundrechnungsarten, das textfeld ist aber gleichzeitig auch für die ausgabe gedacht
über 4 buttons will ich nun die erste eingabe, ich nehm an die ist schon gemacht bevor man auf +, -, *, /
drückt mit der zweiten die ebenfalls in das textfeld kommt addieren, subtrahieren, multiplizieren oder dividieren
und wieder im selben textfeld ausgeben. ich könnte es auch mit drei texten(eins für die erste eingabe, eins für die zweite und eins für die ausgabe) machen aber das ist doch sehr unschön, oder?
 
G

Guest

Gast
aso ja bei jedem ActionEvent rufe ich zu beginn noch eine Methode auf die mir den Text auf null setzt
mit einem inputdialog würde es auch gehen aber ich will das mit einem textfeld sonst schaut es nicht authentisch :wink: aus
 

Xenophon

Aktives Mitglied
Das ganze müsste doch funktionieren, wenn Du bei nem Click auf einen Button (+, -, * oder /) dir den Inhalt des Textfeldes holst und irgendwo als ersten Operant speicherst. Zusätzlich merkst Du Dir die Operator. Beim nächsten Click holst Du Dir wieder den Inhalt des Textfeldes und führst die Operation vom vorhergehenden Click auf den Operanten an speicherst das Ergebnis wieder in dem Operanten merkst Dir den neuen Operator und setz dem Textfeld das Ergebnis. Hoffe Du kannst mir folgen.
 
G

Guest

Gast
ja das problem ist nur das ich nur einen klick habe wenn ich 5 + 5 schreibe ich wills ohne = zeichen haben sodass
bei jedem klick auf einen button das neue ergebnis im textfeld steht
 

Xenophon

Aktives Mitglied
Entweder versteh ich Dich falsch, oder das funktioniert nicht, so wie Du Dir das vorstellst. Wie soll den die erste Zahl eingegeben werden und wie bekommst Du mit, dass die Eingabe für die erste Zahl fertig ist???
 
G

Guest

Gast
Indem ich beim Aufruf das ActionListeners den Inhalt des Textfeldes in eine Variable speichere dann
gleich eine Methode die das Textfeld als übergabeparameter bekommt aufrufe und darin setText("")
überschreibe, und dann soll in dem jeweiligen Event halt noch eine Eingabe gemacht werden damit
ich die zweite Zahl erhalte oder eine Schleife oder irgendwas das solange nichts tut bis das Textfeld
wieder ungleich null ist Das geht sicher?
 

Xenophon

Aktives Mitglied
Und wie willst Du festellen, wann die zweite Zahl fertig eingegeben ist??? Dafür muss ja irgendwas gedrückt werden, egal ob nun ENTER oder =.
 
G

Guest

Gast
ja ich glaub auch ich machs mit einem ist gleich zeichen :lol:
nun eine andere frage, besitzt der datentyp int (der primitive nicht Integer)
auch negative Zahlen, ich nehm an nein darum ist es ja ein primitiver Datentyp, nicht?
und die zweite Antwort wird sein wie willst du kommazahlen mit einem int darstellen, stimmts?
haha, gar nicht denn es soll ein taschenrechner für rationale zahlen werden(brüche) und zuletzt
sollen die ergebnisse in optimal gekürzter form vorliegen(mit dem ggT dividieren) und alle fehlermeldungen
sollen abgefangen werden(division durch null, eingabe null) :meld: das mit den fehlermeldungen ist ja nicht schwer aber
wie mach ich das mit negativen zahlen, muss ich da einen Integer nehmen? vielen Dank für hilfe
 
B

Beni

Gast
Bevor du wilde Behauptungen aufstellst: probier es einfach mal aus!

Natürlich kann int auch negative Zahlen darstellen :!: :wink:
 
G

Guest

Gast
gehen diese vorzeichen beim parsen von Text in Integer verloren bei mir kommt beim subtrahieren
immer null heraus das ist das ergebnis bis auf die clear methode bei der immer eine NumberFormatException
kommt wenn man nur ein Textfeld(den zaehler oder den nenner) belegt geht dann eigentlich alles

zaehler.setText(new Integer(zaehler_zahl[2]).toString());
nenner.setText(new Integer(nenner_zahl[2]).toString());
 
G

Guest

Gast
Könnt ihr mir bitte sagen, warum beim subtrahieren oder addieren negative Zahlen in einem TextField nicht dargestellt werden so schauts aus, liegts am parsen von Text in int?

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

class Rational extends JFrame implements ActionListener
{
	JButton plus;
	JButton minus;
	JButton mal;
	JButton durch;
	JButton gleich;
	JButton clear;
	JTextField zaehler;
	JTextField nenner;
	int[] zaehler_zahl = new int[3];
	int[] nenner_zahl = new int[3];
	int c;
	String a = "";
	
	public Rational() 
	{
		addWindowListener(new WindowAdapter() 
		{
			public void windowClosing(WindowEvent e) 
			{
				dispose();
				System.exit(0);
			}
		});
		
		JPanel panel = new JPanel();
		panel.setLayout(null);
		getContentPane().add(panel);
		
		zaehler = new JTextField();
		zaehler.setBounds(20, 80, 25, 25);
		panel.add(zaehler);
		
		nenner = new JTextField();
		nenner.setBounds(20, 125, 25, 25);
		panel.add(nenner);
		
		plus = new JButton("+");
		plus.setBounds(20, 200, 25, 25);
		plus.addActionListener(this);
		panel.add(plus);
		 
		minus = new JButton("-");
		minus.setBounds(65, 200, 25, 25);
		minus.addActionListener(this);
		panel.add(minus);
		
		mal = new JButton("*");
		mal.setBounds(110, 200, 25, 25);
		mal.addActionListener(this);
		panel.add(mal);
		
		durch = new JButton("/");
		durch.setBounds(155, 200, 25, 25);
		durch.addActionListener(this);
		panel.add(durch);
		
		gleich = new JButton("=");
		gleich.setBounds(200, 200, 25, 25);
		gleich.addActionListener(this);
		panel.add(gleich);
		
		clear = new JButton("C");
		clear.setBounds(245, 200, 25, 25);
		clear.addActionListener(this);
		panel.add(clear);	
	}

	public int addieren(int a, int b)
	{
	c = (a + b);
	return c;
	}
	
	public int subtrahieren(int a, int b)
	{
	c = (a - b);
	return c;
	}
	
	public int multiplizieren(int a, int b)
	{
	c = (a * b);
	return c;
	}
	
	public void clear(JTextField a, JTextField b)
	{
	a.setText("");
	b.setText("");	
	}
	
	public void actionPerformed(ActionEvent e)
	{
	Object quelle = e.getSource();
	zaehler_zahl[0] = Integer.parseInt(zaehler.getText());
	nenner_zahl[0] = Integer.parseInt(nenner.getText());
		
		if(quelle == plus)
		{
		
		a = "+";
		clear(zaehler, nenner);
		
		}
			
		else if(quelle == minus)
		{
		
		a = "-";
		clear(zaehler, nenner);
		
		}
			
		else if(quelle == mal)
		{
		
		a = "*";
		clear(zaehler, nenner);
		
		}
			
		else if(quelle == durch)
		{
		
		a = "/";
		clear(zaehler, nenner);
		
		}
		
		else if(quelle == gleich)
		{
			
			if(a == "")
			{
			System.out.print("Sie haben keine Eingaben getätigt");
			}
			
			else if(a == "+")
			{
			zaehler_zahl[1] = Integer.parseInt(zaehler.getText());
			nenner_zahl[1] = Integer.parseInt(nenner.getText());
			zaehler_zahl[2] = addieren(zaehler_zahl[0],zaehler_zahl[1]);  
			nenner_zahl[2] = addieren(nenner_zahl[0],nenner_zahl[1]); 
			}
			
			else if(a == "-")
			{
			zaehler_zahl[1] = Integer.parseInt(zaehler.getText());
			nenner_zahl[1] = Integer.parseInt(nenner.getText());
			zaehler_zahl[2] = subtrahieren(zaehler_zahl[0],zaehler_zahl[1]);  
			nenner_zahl[2] = subtrahieren(nenner_zahl[0],nenner_zahl[1]); 
			}
			
			else if(a == "*")
			{
			zaehler_zahl[1] = Integer.parseInt(zaehler.getText());
			nenner_zahl[1] = Integer.parseInt(nenner.getText());
			zaehler_zahl[2] = multiplizieren(zaehler_zahl[0],zaehler_zahl[1]);  
			nenner_zahl[2] = multiplizieren(nenner_zahl[0],nenner_zahl[1]); 
			}
			
			else if(a == "/")
			{
			zaehler_zahl[1] = Integer.parseInt(zaehler.getText());
			nenner_zahl[1] = Integer.parseInt(nenner.getText());
			zaehler_zahl[2] = multiplizieren(zaehler_zahl[0],nenner_zahl[1]);  
			nenner_zahl[2] = multiplizieren(nenner_zahl[0],zaehler_zahl[1]); 
			}
		
		zaehler.setText(new Integer(zaehler_zahl[2]).toString());
		nenner.setText(new Integer(nenner_zahl[2]).toString());
		}	
		
		else if(quelle == clear)
		{
		clear(zaehler, nenner);
		}
				
	}
	
	public static void main(String args[]) 
	{
		Rational fridolin = new Rational();
		fridolin.setSize(300, 300);
		fridolin.setLocation(100, 100);
		fridolin.setTitle("Rational");
		fridolin.setVisible(true);
	}
}
 
B

bygones

Gast
ist das so gewollt:

Bild.jpg


und Strings werden nicht per == verglichen
Code:
if(a == "")
sondern per equals methode !
 
G

Guest

Gast
nach meinen Kenntnissen müsste es so gehen, wieso geht es trotzdem nicht?
und warum sind die beschriftungen der buttons nicht lesbar, ich habe sie auch
genügend groß gemacht um ein zeichen darin darzustellen bitte helft mir

ich kenn mich nimmer aus, MAMA :bahnhof:
 
G

Guest

Gast
Ja aber es geht ja so auch bis auf die negativen Zahlen beim subtrahieren die werden
dann nur als 0 im textfeld dargestellt und wenn man gleich eine negative zahl eingibt zb.
-1 für den Nenner und -1 für den Zaehler und dann beabsichtigt+8 und +8 zu Addieren kommt
+16 +16 raus
 
B

bygones

Gast
ok - problem:

wenn du eine Zahl eingibst und dann einen Button meckert er weil du beide felder parst. Im anderen steht aber ein leerer String -> NumberFormatException.

Wenn man zwei zahlen eingibt und dann einen Button drückt passier gar nichts....
 
G

Guest

Gast
doch das feld wird gelöscht um nacher nocheinmal zwei zahlen einzugeben und dann auf gleich zu drücken

gleich das ist das Zeichen vor dem Letzten, dass das nicht angezeigt wird wieso eigentlich nicht?
 
G

Guest

Gast
ich weiß ich bin lästig aber ihr könnt mir sicher helfen
also wie mach ich das damit auch +, -, *, / in meinen buttons steht
 
G

Guest

Gast
wieso werden keine negativen zahlen erkannt? danke einmal für alle die mir geholfen haben
 
B

bygones

Gast
Anonymous hat gesagt.:
ich weiß ich bin lästig aber ihr könnt mir sicher helfen
also wie mach ich das damit auch +, -, *, / in meinen buttons steht
ich persönlich würde vom null - Layout abraten. Nimm ein normales Layout - dann werden die Buttons auch richtig angezeigt.....

mehr kann ich leider nicht sagen - da das Programm bei mir nicht läuft (siehe post oben, bekomme Exceptions)
 

KSG9|sebastian

Top Contributor
In der Methode ActionPerformed(ActionEvent e){...}
hast du ein Attribut Object quelle = e.getSource();

Änder das mal so um:

String quelle = (String)e.getSource();

und in den Bedigungen dann:

if(quelle.equals("minus")){}
.
.
.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Z Erste Schritte Indexe innerhalb eines Arrays zusammensählen Java Basics - Anfänger-Themen 14
M Auf einen Array innerhalb eines Objekts zugreifen Java Basics - Anfänger-Themen 5
dapzoo Innerhalb eines Jahres intensivem Java-Selbststudium zur Anstellung? Java Basics - Anfänger-Themen 37
S Wert innerhalb eines anderen Wertes Java Basics - Anfänger-Themen 3
I Try-Catch innerhalb eines Catchblocks Java Basics - Anfänger-Themen 1
Silvascus Erste Schritte Werte innerhalb eines Arrays addieren Java Basics - Anfänger-Themen 3
L Punkt innerhalb eines Bereiches verschieben Java Basics - Anfänger-Themen 9
S Classpath: Alle .jars innerhalb eines Ordners einbinden Java Basics - Anfänger-Themen 4
T Erste Schritte run innerhalb eines package Java Basics - Anfänger-Themen 1
D Methoden Implementieren von einer Zoomfunktion innerhalb eines JPanels mit null-Layoutmanager Java Basics - Anfänger-Themen 1
M Throws Anweisung innerhalb eines Methodenkopfes unklar Java Basics - Anfänger-Themen 4
M Variablen Zugriff von außerhalb eines Blockes auf eine Variable innerhalb eines Blockes Java Basics - Anfänger-Themen 2
O Files eines Directories innerhalb eines JAR-Files auflisten Java Basics - Anfänger-Themen 0
I JTextfield[] innerhalb eines Itemlistener aufrufen Java Basics - Anfänger-Themen 2
B Zufallsdatum innerhalb eines bestimmten Bereiches erzeugen Java Basics - Anfänger-Themen 3
D OOP Identifzierung eines Objektes innerhalb eines Array Java Basics - Anfänger-Themen 3
G Bewegung innerhalb eines Koordinatensystems berechnen Java Basics - Anfänger-Themen 9
H Innerhalb eines Package wird eine Klassenmethode nicht gefunden. Java Basics - Anfänger-Themen 2
Kaniee Zugriffe innerhalb eines Arrays Java Basics - Anfänger-Themen 9
K Zufällige Auswahl innerhalb eines Arrays und Arrays aus JLabel füllen Java Basics - Anfänger-Themen 32
K Bild mit Maus innerhalb eines Rahmens bewegen Java Basics - Anfänger-Themen 5
S Variablen Variable innerhalb eines if-Statements? Java Basics - Anfänger-Themen 10
S Innerhalb eines Fensters ein neues erschaffen Java Basics - Anfänger-Themen 7
E Elemente innerhalb eines Arrays vergleichen Java Basics - Anfänger-Themen 7
radiac Datentypen RANDOM-punkt setzen INNERHALB eines BEREICHes Java Basics - Anfänger-Themen 2
L Timer innerhalb eines Threads Java Basics - Anfänger-Themen 3
C Textausgabe auf Panelen innerhalb eines Applets Java Basics - Anfänger-Themen 6
N aus .txt innerhalb eines JARs Zeilenweise lesen Java Basics - Anfänger-Themen 8
F Verwenden von Input innerhalb eines Applets Java Basics - Anfänger-Themen 3
K innerhalb eines Strings mit RegEx matchen Java Basics - Anfänger-Themen 17
T Auf Objekte innerhalb eines Panels zugreifen Java Basics - Anfänger-Themen 9
H WinHelp innerhalb eines laufenden JavaProgrammes öffnen Java Basics - Anfänger-Themen 15
G properties-Datei innerhalb eines package auslesen Java Basics - Anfänger-Themen 3
G Auf File / Verzeichnis innerhalb eines jars zugreifen Java Basics - Anfänger-Themen 2
S Summe innerhalb eines arrays? Java Basics - Anfänger-Themen 2
F config.xml innerhalb eines Servlets laden Java Basics - Anfänger-Themen 4
M Felder innerhalb eines Arrays vergleichen Java Basics - Anfänger-Themen 2
L Innerhalb eines Strings nach einem Teilstring suchen Java Basics - Anfänger-Themen 2
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
F wie kann ich die Position des letzten Vokals innerhalb einer Zeichenkette ermitteln? Java Basics - Anfänger-Themen 5
J int innerhalb einer Datei ändern Java Basics - Anfänger-Themen 1
J if-Schleife innerhalb einer if-Schleife wird in der Konsole nicht gelesen Java Basics - Anfänger-Themen 4
I Variable innerhalb Methode: Local variable test defined in an enclosing scope must be final or effectively final Java Basics - Anfänger-Themen 3
I ArrayList erstellen innerhalb einer Zeile? Java Basics - Anfänger-Themen 3
B Summe von Property innerhalb einer Liste via Lambda Java Basics - Anfänger-Themen 1
B Enum innerhalb einer Klasse / anderes Konzept Java Basics - Anfänger-Themen 8
T split innerhalb Klammern ignorieren? Java Basics - Anfänger-Themen 6
x-tshainge Innerhalb von Textdatei addieren Java Basics - Anfänger-Themen 9
J Innerhalb von Zeichenketten tauschen Java Basics - Anfänger-Themen 1
S BufferedWriter innerhalb einer Methode Java Basics - Anfänger-Themen 2
H Innerhalb einer Methode eine Variable der aufrufenden Methode ändern? Java Basics - Anfänger-Themen 2
H For-Schleife innerhalb If-Abfrage? Java Basics - Anfänger-Themen 3
A Werte innerhalb von resultset vergleichen Java Basics - Anfänger-Themen 2
B Key auslesen/ausgeben innerhalb von foreach() Java Basics - Anfänger-Themen 5
MiMa abbruch innerhalb einer Rekursiven Schleife Java Basics - Anfänger-Themen 5
J Array innerhalb einer Funktion mehrfach iniatilisieren Java Basics - Anfänger-Themen 4
O Vererbung this innerhalb von super Java Basics - Anfänger-Themen 7
J Innerhalb Interfacemethode: Interface als Attribut Java Basics - Anfänger-Themen 2
I Innerhalb einer Methode suchen und hinzufügen. Neues Objekt in Suche dann? Java Basics - Anfänger-Themen 8
M Farben/Color Abfragen von Farben innerhalb einer Methode Java Basics - Anfänger-Themen 9
I Rückgabe und Aufruf einer Methode innerhalb einer anderen Methode Java Basics - Anfänger-Themen 5
B Variablen global abspeicher innerhalb von Methoden Java Basics - Anfänger-Themen 7
M Text innerhalb Anführungsstriche als "eins" auswerten Java Basics - Anfänger-Themen 5
S Funktionen/Atrribute nur innerhalb einer package Zugänglich machen Java Basics - Anfänger-Themen 8
P Kapselung Variable innerhalb einer inneren Klasse ansprechen ohne ein Objekt erzeugen zu müssen? Java Basics - Anfänger-Themen 6
L Next()-Aufruf zweimal innerhalb einer While-Schleife bei ListIterator Java Basics - Anfänger-Themen 10
W Methodenaufruf innerhalb einer Klasse - static vs. this Java Basics - Anfänger-Themen 3
B for-schleife innerhalb neuer Methode Java Basics - Anfänger-Themen 5
N Innerhalb des Programmes RAM einstellen Java Basics - Anfänger-Themen 2
J Variablen überschreiben innerhalb einer Klasse Java Basics - Anfänger-Themen 7
N Zugriff auf Werte in Arrays innerhalb ArrayList Java Basics - Anfänger-Themen 2
A Zugriff auf Komponente innerhalb einer JPanel Java Basics - Anfänger-Themen 8
A objekt innerhalb der gleiche klasse Java Basics - Anfänger-Themen 10
J Dateien innerhalb einer JAR verwenden Java Basics - Anfänger-Themen 3
J Innerhalb der Border zeichnen Java Basics - Anfänger-Themen 9
P Unterschied JRE innerhalb/ außerhalb des JDK Verzeichnisses? Java Basics - Anfänger-Themen 5
S Input/Output Problem mit dateizugriff innerhalb der .jar (Applet) Java Basics - Anfänger-Themen 2
E Zeile innerhalb Datei überschreiben Java Basics - Anfänger-Themen 2
K Methoden Zustand innerhalb einer Instanz ändern Java Basics - Anfänger-Themen 2
M Java-Prog soll Texte innerhalb Bildern erkennen Java Basics - Anfänger-Themen 2
N OOP Zugriff auf eine Objekt innerhalb einer Klasse aus statischen Methoden Java Basics - Anfänger-Themen 9
M Main methode innerhalb von Java aufrufen Java Basics - Anfänger-Themen 11
A lokale Variable innerhalb "actionPerformed()" Java Basics - Anfänger-Themen 10
L Lokale Variable und Instanzvariable innerhalb Iterator Java Basics - Anfänger-Themen 8
M FileWriter innerhalb runnable Jar Java Basics - Anfänger-Themen 8
J Diverse Frag zu Vererbung innerhalb von Java Java Basics - Anfänger-Themen 6
O Änderungen innerhalb for-Schleife speichern Java Basics - Anfänger-Themen 17
J Wie auf eine Datei innerhalb des JAR-Files zugreifen Java Basics - Anfänger-Themen 2
T switchcase innerhalb Schleife: von case-Fall aus Schleife beenden Java Basics - Anfänger-Themen 3
H Klassen zur Anzeige ines Bildes und zum Zeichnen innerhalb diese Bildes Java Basics - Anfänger-Themen 2
D Datei innerhalb einer zip bearbeiten Java Basics - Anfänger-Themen 8
D .class-Datei innerhalb einer .jar-Datei verändern Java Basics - Anfänger-Themen 4
R Interface innerhalb einer Klasse definieren..? Java Basics - Anfänger-Themen 2
M Methode innerhalb Methode Java Basics - Anfänger-Themen 10
C Variable Zeichenkette innerhalb einer Schleife ersetzen Java Basics - Anfänger-Themen 4
Das Brot Relative Pfadangaben innerhalb von .jar Archiven Java Basics - Anfänger-Themen 7
Screen Mouserobot clonen? Zeiger nur innerhalb eins Fensters? Java Basics - Anfänger-Themen 3
E Boolean wert innerhalb einer Tabelle ändern Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben