Kalkulator

0

Cześć. Mam kalkulator, który liczy w odwrotnej notacji polskiej. Działa dobrze, ale problem pojawia się, gdy występuje sytuacja np.: 2++2. Jak zablokować możliwość wielokrotnego wciskania operatorów?

Tutaj fragment kodu.

//dolaczenie łańcucha klikniętego przycisku na końcu tekstu w pliku wynikowym

private class InsertAction implements ActionListener                               
{                                                                                                   
        public InsertAction(){}

        @Override
        public void actionPerformed(ActionEvent event)
        { 
            String input = event.getActionCommand();  
            String resultString = null; 
            String output =display.getText();

            if (start)
            {           
                display.setText(" ");
                start = false;  
            }

            if (input.equals("="))               //jesli = to zwraca wynik
            {
                ReversePolishNotation onp = new ReversePolishNotation(output);
                resultString = "" + onp.count();
                display.setText("" + resultString);     
                start = true;
            }
            else if(input.equals("CLR"))            //przycisk clear
            {
                display.setText(" ");
                start = true;
            }    
            else if(input.equals("BP"))            //przycisk backspace
            {    
                if(output.length() >= 1)
                {
                    display.setText(output.substring(0, output.length() - 1));
                }
            }
            else
            {
                display.setText(display.getText() + input);        
            }
        }
    }
1

Najszybciej będzie w Twoim przypadku jeśli zrobisz zmienną przechowująca ostatni wpisany znak i sprawdzisz, czy obecny znak nie będący liczbą jest równy. Jeśli tak to nie wykonasz po prostu żadnej akcji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0