Swing Taschenrechner GUI

Haggi

Mitglied
Hallo Leute!

Ich bin neu hier im Forum und habe ein kleines Problem beim Taschenrechner Projekt!
Ich arbeite mit dem Programm NetBeans und der Taschenrechner funktioniert auch einwandfrei :)
Aber ich möchte ihn erweitern und wie beim Windows-Taschenrechner möchte ich, dass wenn man nach dem Ergebnis eine neue Zahl eingibt dass das Textfeld gelöscht wird. Könnt ihr mir vl Tipps geben wie ich es umsetze?

Vielen Dank im Voraus :)
Mfg Haggi
 

Haggi

Mitglied
Ok Sry für die kurze und vl nicht verständliche Erklärung :(

Angenommen ich rechne zb 3 + 5 aus und drücke dann die Enter Taste dann kommt das Ergebnis 8 raus :) Ich möchte aber wenn ich eine neue Berechnung ausführe dass das Textfeld automatisch gelöscht wird und die neue Zahl eingegeben wird wie beim Windows Taschenrechner ;)

angenommen es steht die Zahl 8 da von der letzten Berechnung. Nun möchte ich 3 - 2 eingeben, aber sobald ich die Taste 3 drücke steht dann "83" weil ich vorher immer manuell das Textfeld löschen muss mit einem Clear Button.

Java:
    private void jButtonOneActionPerformed(java.awt.event.ActionEvent evt) {                                           
        String jButtonOneText = jTextField.getText() + jButtonOne.getText();
        jTextField.setText(jButtonOneText);
    }                                          

    private void jButtonTwoActionPerformed(java.awt.event.ActionEvent evt) {                                           
        String jButtonTwoText = jTextField.getText() + jButtonTwo.getText();
        jTextField.setText(jButtonTwoText);
    }                                          

    private void jButtonThreeActionPerformed(java.awt.event.ActionEvent evt) {                                             
        String jButtonThreeText = jTextField.getText() + jButtonThree.getText();
        jTextField.setText(jButtonThreeText);
    }                                            

    private void jButtonFourActionPerformed(java.awt.event.ActionEvent evt) {                                            
        String jButtonFourText = jTextField.getText() + jButtonFour.getText();
        jTextField.setText(jButtonFourText);
    }                                           

    private void jButtonFiveActionPerformed(java.awt.event.ActionEvent evt) {                                            
        String jButtonFiveText = jTextField.getText() + jButtonFive.getText();
        jTextField.setText(jButtonFiveText);
    }                                           

    private void jButtonSixActionPerformed(java.awt.event.ActionEvent evt) {                                           
        String jButtonSixText = jTextField.getText() + jButtonSix.getText();
        jTextField.setText(jButtonSixText);
    }                                          

    private void jButtonSevenActionPerformed(java.awt.event.ActionEvent evt) {                                             
        String jButtonSevenText = jTextField.getText() + jButtonSeven.getText();
        jTextField.setText(jButtonSevenText);
    }                                            

    private void jButtonEightActionPerformed(java.awt.event.ActionEvent evt) {                                             
        String jButtonEightText = jTextField.getText() + jButtonEight.getText();
        jTextField.setText(jButtonEightText);
    }                                            

    private void jButtonNineActionPerformed(java.awt.event.ActionEvent evt) {                                            
        String jButtonNineText = jTextField.getText() + jButtonNine.getText();
        jTextField.setText(jButtonNineText);
    }                                           

    private void jButtonNullActionPerformed(java.awt.event.ActionEvent evt) {                                            
        String jButtonNullText = jTextField.getText() + jButtonNull.getText();
        jTextField.setText(jButtonNullText);
    }                                           

    private void jButtonKommaActionPerformed(java.awt.event.ActionEvent evt) {                                             
        String jButtonKommaText = jTextField.getText() + ".";
        jTextField.setText(jButtonKommaText);
    }                                            

    private void jButtonPlusActionPerformed(java.awt.event.ActionEvent evt) {                                            
        String button_text = jButtonPlus.getText();
        getOperator(button_text);
    }                                           

    private void jButtonMinusActionPerformed(java.awt.event.ActionEvent evt) {                                             
        String button_text = jButtonMinus.getText();
        getOperator(button_text);
    }                                            

    private void jButtonMalActionPerformed(java.awt.event.ActionEvent evt) {                                           
        String button_text = jButtonMal.getText();
        getOperator(button_text);
    }                                          

    private void jButtonDividideActionPerformed(java.awt.event.ActionEvent evt) {                                                
        String button_text = jButtonDividide.getText();
        getOperator(button_text);
    }                                               

    private void jButtonClearActionPerformed(java.awt.event.ActionEvent evt) {                                             
        total2 = 0;
        jTextField.setText("");
    }                                            

    private void jButtonErgebnisActionPerformed(java.awt.event.ActionEvent evt) {                                                
        switch (math_operator) {
            case '+':
                total2  = total1 + Double.parseDouble(jTextField.getText());
                break;
            case '-':
                total2 = total1 - Double.parseDouble(jTextField.getText());
                break;
            case '/':
                total2 = total1 / Double.parseDouble(jTextField.getText());
                break;
            case '*':
                total2 = total1 * Double.parseDouble(jTextField.getText());
                break;
        }
        jTextField.setText(Double.toString(total2));
        total1 = 0;            
    }                                               

    private void jTextFieldKeyTyped(java.awt.event.KeyEvent evt) {                                    
        if (evt.getKeyChar() == '+') {
            jButtonPlusActionPerformed(null);
            evt.consume();
        }
        if (evt.getKeyChar() == '-') {
            jButtonMinusActionPerformed(null);
            evt.consume();
        }
        if (evt.getKeyChar() == '/') {
            jButtonDividideActionPerformed(null);
            evt.consume();
        }
        if (evt.getKeyChar() == '*') {
            jButtonMalActionPerformed(null);
            evt.consume();
        }
        if (evt.getKeyChar() == KeyEvent.VK_BACK_SPACE) {
            jButtonClearActionPerformed(null);
            evt.consume();
        }
        if (evt.getKeyChar() == KeyEvent.VK_PERIOD) {
            jButtonKommaActionPerformed(null);
            evt.consume();
        }
        if (evt.getKeyChar() == KeyEvent.VK_ENTER) {
            jButtonErgebnisActionPerformed(null);
            evt.consume();
        }
        if (evt.getKeyChar() == KeyEvent.VK_COMMA) {
            jButtonKommaActionPerformed(null);
            evt.consume();
        }
    }                                   

    private void getOperator(String btnText) {
        math_operator = btnText.charAt(0);
        total1 = total1 + Double.parseDouble(jTextField.getText());
        jTextField.setText("");
    }

Habe den generierten Teil für die GUI von Netbeans entfernt.
Hoffe es ist übersichtlich :)
Mfg Haggi
 

VfL_Freak

Top Contributor
Moin,

Java:
private void jButtonOneActionPerformed( java.awt.event.ActionEvent evt )
{
    String jButtonOneText = jTextField.getText() + jButtonOne.getText();
    jTextField.setText( jButtonOneText );
}
Du brauchst Dir nur für den Eintrag, den Du mit "jTextField.getText()" ermittelst, zuvor merken, ob es eine Eingabe oder ein Rechenergebnis ist.

Also sinngemäß (in leichtem PseudoCode) etwa:
Java:
private void jButtonOneActionPerformed( java.awt.event.ActionEvent evt )
{
    if( meinStatus == Rechenergebnis )
    {
        jTextField.setText( jButtonOne.getText() );
        meinStatus = KeinRechenErgebnis;
    }
    else
    {
        jTextField.setText( jTextField.getText() + jButtonOne.getText() );
    }
}
Für "meinStatus" würde sich dabei ein bool'scher Wert anbieten ("Rechenergebnis" steht dann für TRUE, "KeinRechenErgebnis" für FALSE) !!
Bei jeder Berechnung muss dann natürlich "meinStatus = Rechenergebnis" gesetzt werden ...

Gruß
Klaus
 

Haggi

Mitglied
DANKE !!!!!
Jetzt funktionierts :))))

Ihr seid einfach spitze :)

Werde mich öfter melden falls ich mal kleine Probleme habe :)

P.S. Ich werde euch evtl. weiter empfehlen in meiner Programmier-Klasse ;)

Mfg
Haggi
 
Ä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
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
H Taschenrechner AWT, Swing, JavaFX & SWT 5
G Taschenrechner-Problem AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben