Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi Leutz,

ich Programmiere gerade einen Taschenrechner in Java und habe folgendes Problem --> Ich habe 2 Textfelder und ein Nummernblock. Wenn ich in das erste Textfeld klicke und auf meinem Nummernblock auf die 1 klicke dann will ich das in diesem Feld die 1 steht und wenn ich mit der Maus in das zweite Eingabe feld gehe und die 1 klicken dan will ich das in diesem Feld die 1 kommt. Wie bekomme ich das hin? Vielleicht mit irgend einem MouseListener();?

Ich hoffe ihr könnt mir helfen!!!

Tschöö Paraxx

Geschrieben

Bau das ganze doch ein bisschen anders auf:

Verwende nur ein TextField. In dieses gibst du die ganzen Zahlen (über die Buttons) ein. Sobald ein Button mit einem Operanden (+, -, *, / etc) gedrückt wird, schickst du den Text z.B. in ein Label und leerst das TextField. Neue Zahleneingaben kannst du dann wieder in das leere TextField schreiben.

Falls du Probleme hast, auf Events der Buttons zu reagieren: Den Buttons muss natürlich ein ActionListener zugeordnet sein. (java.awt.events.ActionListener)

Snowghost

Geschrieben

Das ist glaub ich auch die bessere Idee. Die Rechenoperatoren hab ich alle schon eingebaut. Das stellt sich mir gelich das zweite Problem. Wenn ich auf meinem Nummernblock zweimal die 1 drücke ist trotzdem nur einmal die 1 zusehen. Wie bekomme ich das hin das ich 2 mal die 1 eigeben kann und dann auch 2 einsen sehe?

Geschrieben

Ich hab da nochmal ne frage zum rechnen. Wenn ich auf den Button "+" drücken dann sage ich, hol dir den Wert aus dem Textfeld, überprüfen ob du es in "float" umwandeln kannst, wenn ja dann mach das(oder mußt das vielleicht Global gemacht werden), dann hab ich den Wert als float, außerdem setzte ich eine eine LabelFeld auf z. B. "+". Jetzt frage ich in meinem "Ist gleich" Button ab, was für ein Operator in dem LabelFeld steht und rechne dann dem entsprechend. Wenn ich es Global machen muß wäre es dann so richtig--->?

String holen = eingabe.getText();

String holen2 = eingabe2.getText();

try

{

float x = Float.parseFloat(holen);

float y = Float.parseFloat(holen2);

}

catch (NumberFormatException ex)

{

JOptionPane.showMessageDialog(null,

"Bitte geben Sie eine Zahl ein");

return;

}

float x = Float.parseFloat(holen);

float y = Float.parseFloat(holen2);

stimmt das so?

Geschrieben

Kleines Bsp.:

public void rechne()

{

float op1 = 0;

float op2 = 0;

float ergebnis = 0;

try

{

op1=Float.parseFloat(eingabe.getText());

op2=Float.parseFloat(eingabe2.getText());

switch (operand)

{

case 1: ergebnis = op1 + op2

case 2: ergebnis = op1 - op2

}

}

catch (Exception e)

{

}

}

"operand" wäre in diesem Fall eine int-Variable. Dieser Variablen würde ich (je nach gedrücktem Operand-Button) einen Wert zuordnen. (z.B. 1 für Plus, 2 für Minus etc.)

Dann kannst du ihn in der switch-case Anweisung auswerten und mit deinen Operanden entsprechend rechnen. Was du dann mit dem Ergebnis machst (und wo du die Variable deklarierst) bleibt dir überlassen.

Snowghost

Geschrieben

Danke für Hilfestellung, habs zwar net genau so gemacht aber die Hinweise waren sehr gut. Wenn du willst kann ich ihn dir, wenn das Menü und das Design fertig ist, mal zu senden!?!

Paraxx

Geschrieben

Hab mal wieder ne Frage. Es gibt ja auf einem Taschenrechner eine "+/-" Taste. Wie kann ich abfragen wenn ein Minus in dem TextFeld drin ist dann lösche es bzw. mach ein plus draus?

Paraxx

Geschrieben

Hallo,

du solltest die mal die JDK Api Docu installieren.

-------------------------------------------

grabFocus

public void grabFocus()Sets the focus on the receiving component if it doesn't already have it. This method is for focus managers. You rarely want to call this method; use requestFocus() instead.

-------------------------------------------

Gruß Jaraz

Geschrieben

Servus,

i hab da mal wieder eine froge.

Wie kann ich ein Objekt Klassenübergreifend ansprechen ohne das die Fehlermeldung kommt "Eine statische Referenz auf ein nicht-statisches variable eingabe ist nicht möglich in zeile usw."?:confused:

Geschrieben

Ist jetzt nicht böse gemeint, aber du solltest dir wirklich mal ein Buch zulegen und die Grundlagen von Java durcharbeiten...

Diese Fehlermeldung kommt, wenn du innerhalb einer statischen (static) Methode auf eine Variable (oder Objekt) zugreifst, die nicht statisch ist.

Hier mal 2 kostenlose Online-Bücher:

www.java-tutor.com (Java ist auch eine Insel)

www.javabuch.de (GoTo Java)

Snowghost

Geschrieben

Danke für den Hinweis aber das war mir auch klar. Du hast mich jedoch auf eine grandiose Idee gebrach die ich gleich umgesetzt hab. Entlich kann ich das Menü fertig implementieren. Das war einfach genial! MERCI! Er wird heut noch fertig. Ich schick ihn dir dann zu. Muß dir aber das komplette package schicken, weil das mit dem ausführbar machen nicht so einfach ist.

Geschrieben

Hej, i glaub du bischt der absolute java cheeeffff!! Net schlecht, ich hatte das zwar auch schonmal gehört(in der schule) aber ich wußte net mer wie des geht. Net schlecht wirklich net schlecht.:)

Geschrieben

Hab hatte mir diesmal vorgenommen das Problem allein zu lösen aber ich komme jetzt einfach nicht mehr weiter, ich brauche HILFE!!

Folgendes Problem: Ich habe in meine Menüleiste die Menüpunkte "Kopieren" und "Einfügen" eingefügt und will da natürlich auch funkt. dahinterlegen. Jetzt habe ich folgendes gemacht: -> in meine Hauptklasse habe ich ein Clipboard erstellt und habe dann in meinen konstruktor ->"clip = getToolkit().getSystemClipboard();" geschrieben, was ja bedeutet das er den inhalt meines clipboardes in die system zwischenablage steckt? oder verstehe ich das falscht:confused: . Danach habe ich in meine Menüfunktion folgendes geschrieben welches mir eigentlich auch relativ klar ist.

class copy implements ActionListener

{

public void actionPerformed (ActionEvent e)

{

String txt = eingabe.getText();

StringSelection trans = new StringSelection(txt);

clip.setContents(trans, this);

}

}

Hab keine ahnung ob das richtig ist. Auf jedenfall gehts net. Habs aber so auf einem Tutor. gelesen. Bin mir sicher der Snowghost weiß wies zu lösen ist?!!?!?! Oder? :D

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...