Veröffentlicht 21. März 200223 j 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
21. März 200223 j 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
21. März 200223 j 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?
21. März 200223 j Du darfst den Inhalt des TextFields natürlich nicht überschreiben, sondern musst die Auswahl (die Ziffern) immer anhängen. Bsp: textField.setText(textField.getText() + nummer)); Snowghost
21. März 200223 j 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?
21. März 200223 j 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
21. März 200223 j 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
22. März 200223 j 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
22. März 200223 j Lies doch einfach den Wert aus, multipliziere ihn mit -1, und schreib ihn wieder rein.
22. März 200223 j Wie kann ich eigentlich das Logo von meinem Programm (Symbol in der linken oberen Ecke) ändern?
22. März 200223 j Kann mir jemand den Befehl für ".grabFocus();" in "java.awt.*;" sagen? Oder geht ".grapFocus();" nur in "javax.swing.*;"
22. März 200223 j 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
25. März 200223 j 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:
25. März 200223 j 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
25. März 200223 j 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.
25. März 200223 j Tach da bin ich wieder. Fragen über Fragen *gg*. NAJA. Kann mir jemand sagen wie kann ich das letzte zeichen meiner Eingabe löschen kann?
25. März 200223 j Bilde dir einen Sub-String. in etwa so: String s = new String("1234"); s = s.substring(0, s.length-1); Snowghost
25. März 200223 j 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.
25. März 200223 j 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?
25. März 200223 j schick mir doch am besten mal deine klassen rüber (email ist irgendwo oben). dann kann ich dir vielleicht genauer sagen, wo das prob liegt. Snowghost
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.