Event Handling Vom ActionEvent auf String zugreifen - genaueres in der Beschreibung

KilledByCheese

Mitglied
Hallo zusammen,
ich bin neu in diesem Forum - seid nicht zu streng mit mir :)
Ich habe schon ein bisschen Kenntnis in Java, hab aber einiges wieder vergessen und bin sozusagen ein wiederNeuEinsteiger :)

Ich habe mir als "einsteiger Projekt" einen kleinen Taschenrechner vorgenommen. diesen habe ich auch hinbekommen und nun bin ich dabei einen mit einem GUI zu "entwickeln"
Ich weiß mein Code ist nicht der schönste und man kann einiges besser machen aber ich möchte es so und nur eine Lösung zu meinem aktuellem Problem XD

mein bisheriger Code ist angehangen - am besten den Code nach NotePad++(oder anderer Editor) kopieren und als *.java speichern - ist dann was schöner :)

ich habe noch nicht alle Buttons integriert, sondern erstmal nur die Zahlenfelder und das ErgebnisTextfeld.
Ich möchte nun den ActionListenern der Buttons Funktionen zu ordnen - ich möchte, dass wenn man eine Zahl drückt, dann diese im anzeigeFeld erscheint, nicht einzelnen, sondern, dass diese immer länger wird, z.B. wenn ich 1 und 5 drücke möchte ich 15 dort stehen haben.

Wie kann ich einen String so machen, dass ich vom jeder ButtonFunktion darauf zugreifen kann?

Alle Rechtschreibfehler sind gewollt :) Jeda macht mal Fela!
 

Anhänge

  • calculator.txt
    3,8 KB · Aufrufe: 5

knilch

Bekanntes Mitglied
Hi,
du kannst eine Methode erstellen z.B.
Java:
private void updateOutputTextField(String string) {
    String oldText = outputLine.getText();
    if(oldText.equals("??"))
        oldText = "";

    switch (string) {
    case "+":
    case "-":
    case "*":
    case "/":
        oldText += " " + string + " ";
        break;
    default:
        oldText += string;
        break;
    }
    outputLine.setText(oldText);
}
und diese Methode für alle Buttons im ActionEvent aufrufen. ([0-9] sowie "+","-", "*", "/") z.B:
Java:
button1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        updateOutputTextField("1");
   }});

button2.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        updateOutputTextField("2");
   }});
Beim Button Solve wird dann der Text vom output eingelesen, mit String.splitt[" "] die 1 sowie 2 nummer herausgelesen, daraus auch noch der Operator (+,-,*,/) ermittelt und dann die Operation gemacht. Das Resultat der Operation wird dann im output ausgegeben ps...
Vorsicht bei Division durch 0, dies musst du abfangen (ebenso die Grenzen der Baisistypen (int und float), jenachdem wie grosse Zahlen du eingibst) (Overflow exception...)
 

KilledByCheese

Mitglied
Vielen Dank für die Antworten hat mir wirklich geholfen ich hab das "Problem gelöst"

Ich kann nun das OutPutfeld ändern bzw. dort die Zahlen eingeben funktioniert auch bis auf einen seltsamen Fehler, dass wenn ich 1 drücke 01 angehängt wird da bin ich ncoh auf der suche aber hier mein Code:

Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.*;


public class GUI_calculator {

   
    public static void main(String[] args) {
       
        JFrame mainframe = new JFrame("Calculator");
        mainframe.setBounds(0,0,500,300);
       
        JLabel fueller = new JLabel();
       
        final JTextField outputLine = new JTextField("");
        outputLine.setBounds(300,5,180,50);
        outputLine.setEditable(false);
        outputLine.setText("");
       
    //---------------------------------------------------------------       
                       
        JButton button1 = new JButton("1");
        button1.setBounds(0,50,50,50);
        button1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                String zahl_1 = "1";
                String oldOutput = outputLine.getText();
                String newOutput = oldOutput.concat(zahl_1);
                outputLine.setText(newOutput);
             
            }});     
       
        JButton button2 = new JButton("2");
        button2.setBounds(50,50,50,50);
        button2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                String zahl_2 = "2";
                String oldOutput = outputLine.getText();
                String newOutput = oldOutput.concat(zahl_2);;
                outputLine.setText(newOutput);
             
            }});
       
        JButton button3 = new JButton("3");
        button3.setBounds(100,50,50,50);
        button3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                String zahl_3 = "3";
                String oldOutput = outputLine.getText();
                String newOutput = oldOutput.concat(zahl_3);;
                outputLine.setText(newOutput);
             
            }});
       
        JButton button4 = new JButton("4");
        button4.setBounds(0,100,50,50);
        button4.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                String zahl_4 = "4";
                String oldOutput = outputLine.getText();
                String newOutput = oldOutput.concat(zahl_4);;
                outputLine.setText(newOutput);
             
            }});
       
        JButton button5 = new JButton("5");
        button5.setBounds(50,100,50,50);
        button5.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                String zahl_5 = "5";
                String oldOutput = outputLine.getText();
                String newOutput = oldOutput.concat(zahl_5);;
                outputLine.setText(newOutput);
             
            }});
       
        JButton button6 = new JButton("6");
        button6.setBounds(100,100,50,50);
        button6.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                String zahl_6 = "6";
                String oldOutput = outputLine.getText();
                String newOutput = oldOutput.concat(zahl_6);;
                outputLine.setText(newOutput);
             
            }});
       
        JButton button7 = new JButton("7");
        button7.setBounds(0,150,50,50);
        button7.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                String zahl_7 = "7";
                String oldOutput = outputLine.getText();
                String newOutput = oldOutput.concat(zahl_7);;
                outputLine.setText(newOutput);
             
            }});
       
        JButton button8 = new JButton("8");
        button8.setBounds(50,150,50,50);
        button8.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                String zahl_8 = "8";
                String oldOutput = outputLine.getText();
                String newOutput = oldOutput.concat(zahl_8);;
                outputLine.setText(newOutput);
             
            }});
       
        JButton button9 = new JButton("9");
        button9.setBounds(100,150,50,50);
        button9.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                String zahl_9 = "9";
                String oldOutput = outputLine.getText();
                String newOutput = oldOutput.concat(zahl_9);;
                outputLine.setText(newOutput);
             
            }});
       
        JButton button0 = new JButton("0");
        button0.setBounds(50,200,50,50);
        button1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                String zahl_0 = "0";
                String oldOutput = outputLine.getText();
                String newOutput = oldOutput.concat(zahl_0);;
                outputLine.setText(newOutput);
             
            }});
       
        JButton solve = new JButton("=");
        solve.setBounds(100,200,50,50);
        solve.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
             
             
            }});
       
    //---------------------------------------------------------------   
       
        mainframe.add(button1);
        mainframe.add(button2);
        mainframe.add(button3);
        mainframe.add(button4);
        mainframe.add(button5);
        mainframe.add(button6);
        mainframe.add(button7);
        mainframe.add(button8);
        mainframe.add(button9);
        mainframe.add(button0);
       
        mainframe.add(solve);
       
        mainframe.add(outputLine);
       
        mainframe.add(fueller);
       
    //---------------------------------------------------------------   
       
        mainframe.setVisible(true);
       
   
    }
   
}

Nochmal Vielen Dank für die schnellen und guten Antworten :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B ActionEvent Dateipfad als String übergeben AWT, Swing, JavaFX & SWT 11
S ActionEvent Press Enter per Code auslösen AWT, Swing, JavaFX & SWT 22
B JavaFX Verständnisfrage EventHandler<ActionEvent> Implementierung in meiner Klasse AWT, Swing, JavaFX & SWT 2
M JavaFX ActionEvent Button AWT, Swing, JavaFX & SWT 6
S JavaFx - Button ActionEvent Probleme AWT, Swing, JavaFX & SWT 3
S JavaFX Unterschied MouseEvent und ActionEvent AWT, Swing, JavaFX & SWT 3
G Swing Durch GlassPane auf Button klicken und ActionEvent auslösen AWT, Swing, JavaFX & SWT 0
K Ereignisbehandlung, ActionListener, ActionEvent AWT, Swing, JavaFX & SWT 3
T Fehler bei ActionEvent? AWT, Swing, JavaFX & SWT 3
P ActionEvent wird nicht verarbeitet AWT, Swing, JavaFX & SWT 4
X AWT ActionEvent wirft NullPointerExpection Warum? AWT, Swing, JavaFX & SWT 42
P Event Handling Anfängerfrage: ActionEvent bekommt kein Zugriff auf Objekt AWT, Swing, JavaFX & SWT 3
J JavaFX ActionEvent AWT, Swing, JavaFX & SWT 8
U Event Handling JButton Actionevent: starte Spiel AWT, Swing, JavaFX & SWT 4
M Swing ActionEvent soll von Anderem ActionEvent abhängen AWT, Swing, JavaFX & SWT 3
M JPopupMenu per Klick schließen und gleichzeitig ActionEvent auf JButton? AWT, Swing, JavaFX & SWT 15
1 ActionEvent generieren und an ActionListener weiterleiten AWT, Swing, JavaFX & SWT 12
L JFrame größe in einem ActionEvent ändern AWT, Swing, JavaFX & SWT 4
C Programm für 5 sekunden anhalten und actionevent abfangen AWT, Swing, JavaFX & SWT 18
M Arbeiten mit actionPerformed(ActionEvent) oder Alternative AWT, Swing, JavaFX & SWT 7
N Aufgabe: ActionEvent - Abfrage AWT, Swing, JavaFX & SWT 7
N Problem mit ActionEvent - Abfrage AWT, Swing, JavaFX & SWT 10
Dit_ Objekt mit ActionEvent übergeben AWT, Swing, JavaFX & SWT 2
B JFreeChart Balkendiagramm ActionEvent AWT, Swing, JavaFX & SWT 2
kirchrath Swing Aus ActionEvent Objekt herausfinden auf dem er ausgeführt wurde AWT, Swing, JavaFX & SWT 4
T JTable durch ActionEvent befüllen AWT, Swing, JavaFX & SWT 3
M Frage zu ActionEvent? AWT, Swing, JavaFX & SWT 4
P KeyEvent methode an actionEvent methode weiterleiten AWT, Swing, JavaFX & SWT 5
M Eigenes ActionEvent / Eigener Listener AWT, Swing, JavaFX & SWT 2
G ActionEvent richtig anbringen AWT, Swing, JavaFX & SWT 7
C JButton-Name per ActionEvent rausfinden AWT, Swing, JavaFX & SWT 2
P actionlistener und actionevent AWT, Swing, JavaFX & SWT 2
M ActionEvent löst nicht aus AWT, Swing, JavaFX & SWT 4
T actionevent an modalen dialog AWT, Swing, JavaFX & SWT 5
L eigene Komponente, ActionEvent senden? AWT, Swing, JavaFX & SWT 3
M ActionEvent manuell senden AWT, Swing, JavaFX & SWT 7
S Neubaufbau eines Tabelleninhalts bei actionEvent AWT, Swing, JavaFX & SWT 4
C Swing Übergabe von String an JLabel AWT, Swing, JavaFX & SWT 9
2 JavaFX die ChoiceBox leitet den String nicht weiter oder es komm zu einem NullPointer AWT, Swing, JavaFX & SWT 8
officialmaxl JavaFX Textfield getTextfield() in String speichern AWT, Swing, JavaFX & SWT 1
H String zu int/long AWT, Swing, JavaFX & SWT 8
D String als Textdatei in ausgewähltem Speicherplatz speichern AWT, Swing, JavaFX & SWT 32
R Swing Ein gezeichneten String aus dem JFrame löschen AWT, Swing, JavaFX & SWT 5
H String teilen, damit bei JLabel keine Punkte am Ende angezeigt werden AWT, Swing, JavaFX & SWT 4
J SWT Search string highlite AWT, Swing, JavaFX & SWT 5
M JavaFX String aus TextField reagiert nicht wie erwartet AWT, Swing, JavaFX & SWT 3
F RGB-Werte aus einem String einlesen AWT, Swing, JavaFX & SWT 26
J Event Handling Input auf String testen, Fehlermeldung ausgeben AWT, Swing, JavaFX & SWT 4
D JavaFX ComboBox String setzen AWT, Swing, JavaFX & SWT 20
Y Darstellung und MouseHover bei bestimmten Wörtern in einem String AWT, Swing, JavaFX & SWT 2
X Zeilen aus einer Textdatei einzelnd als String abrufen AWT, Swing, JavaFX & SWT 8
T replace string AWT, Swing, JavaFX & SWT 1
D String zu StringProperty Konvertieren AWT, Swing, JavaFX & SWT 4
T jTextField mit String befüllen AWT, Swing, JavaFX & SWT 1
E Eigenes TableModel für ArrayList<String[]> AWT, Swing, JavaFX & SWT 5
F Swing String[] in JTextArea ausgeben. Jeder Eintrag in neue Zeile, aber ohne "\n"- Geht das? AWT, Swing, JavaFX & SWT 3
L Zwei String Array in eine Spalte einfügen AWT, Swing, JavaFX & SWT 1
P DefaultStyledDocument eingegebenen String durchsuchen und bestimmte Sachen einfärben AWT, Swing, JavaFX & SWT 1
B 2D-Grafik String drehen/platzieren/formatieren in bestimmten Bereich AWT, Swing, JavaFX & SWT 1
A Swing Logikaufgabe: Zeilenanzahl einer JTable mit 3d String dynamisch anpassen AWT, Swing, JavaFX & SWT 2
S XML Output String Format AWT, Swing, JavaFX & SWT 2
R Swing JTextField getText() liefert leeren String AWT, Swing, JavaFX & SWT 6
P Swing String mit unterschiedlichen Formaten zusammenbauen AWT, Swing, JavaFX & SWT 14
T Swing HTML Text aus JLabel ohne "HTML-Tags" in String einlesen AWT, Swing, JavaFX & SWT 5
J 2D-Grafik String aus array wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
L Swing JToogleButton Vordergrundfarbe bei HTML String AWT, Swing, JavaFX & SWT 4
T Swing JProgressBar mit String unschön AWT, Swing, JavaFX & SWT 5
M Swing String zerlegen AWT, Swing, JavaFX & SWT 2
J Swing String soll als Variable dienen AWT, Swing, JavaFX & SWT 11
A Text (String) zu einer Box hinzufügen AWT, Swing, JavaFX & SWT 16
D textfeld string zu float AWT, Swing, JavaFX & SWT 5
B Color String Code AWT, Swing, JavaFX & SWT 3
C JTextArea scrollt bei append(String) aus Threads nicht ans Ende AWT, Swing, JavaFX & SWT 7
E selektierter Datensatz in JList als String Datentyp AWT, Swing, JavaFX & SWT 23
S String is null Fehler AWT, Swing, JavaFX & SWT 2
M SomeClass.class.getResourceAsStream(String filename) funktioniert nicht in jar) AWT, Swing, JavaFX & SWT 32
B JTable Component mit String? AWT, Swing, JavaFX & SWT 4
S String Array Ausgabe im JLabel ??? AWT, Swing, JavaFX & SWT 8
D JSplitPane, Jtree, CardLayout (constraint must be a string) AWT, Swing, JavaFX & SWT 9
L SWT Text SelectionText ersetzen durch anderen String AWT, Swing, JavaFX & SWT 6
B Color.BLUE in String umwandeln AWT, Swing, JavaFX & SWT 4
H String auf Knopfdruck in JPanel zeichnen. AWT, Swing, JavaFX & SWT 6
P 2D-Grafik String übergeben, PNG soll rauskommen AWT, Swing, JavaFX & SWT 9
A Formatierten String ausgeben (drawString) AWT, Swing, JavaFX & SWT 5
S Swing Grundprinzip String ausgeben, aber wie? AWT, Swing, JavaFX & SWT 6
R JComboBox Ausgabe in String speichern AWT, Swing, JavaFX & SWT 3
TiME-SPLiNTER Swing JListModel: String rendern AWT, Swing, JavaFX & SWT 2
R String in JFrame ausgeben AWT, Swing, JavaFX & SWT 10
D Zwei String Attribute über eine Methode als Zeilen in einer Tabelle darstellen AWT, Swing, JavaFX & SWT 9
C Swing Text eines JButton mit String definieren? Reihenfolge? AWT, Swing, JavaFX & SWT 6
S [Button] setText("String") AWT, Swing, JavaFX & SWT 5
1 BufferedImage in byte[], dann in String und zurück AWT, Swing, JavaFX & SWT 7
I String lowercase, uppercase und umdrehen AWT, Swing, JavaFX & SWT 3
D Swing JTextField String anhängen AWT, Swing, JavaFX & SWT 7
F Swing String Array mit JTextArea anzeigen AWT, Swing, JavaFX & SWT 13
P Canvas: String wird nicht gezeichnet AWT, Swing, JavaFX & SWT 5
D SWT String aus Textfeld auslesen und in eine Tabelle speichern AWT, Swing, JavaFX & SWT 5
T SWT String mitten ins Textfeld einfügen + richtige Cursorposition AWT, Swing, JavaFX & SWT 3
T Swing Wie kann ich einen String in ein TreePath umwandeln? AWT, Swing, JavaFX & SWT 5
H String ausführen und damit weiterarbeiten AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben