Inne działy

Java przykładowe programy

 

Przyciski odejmowanie, dzielenie i mnożenie  w programie Java Kalkulator

 

Teraz, przycisk Plus działa w naszym programie Kalkulator Java, możemy dodać przyciski odejmowania, dzielenia i mnożenia, podobnie jak przycisk dodawania, jednak przyciski te nie wykonują żadnych obliczeń: przycisk równa się będzie wykonywał całą prace. Jedyną rzeczą, jakie przyciski operatorskie będą robić, to będzie zapamiętanie, który przycisk został kliknięty: dodawanie, odejmowanie, dzielenie lub mnożenie.

Pierwszą rzeczą jaką mamy do zrobienia jest, aby umieścić więcej przycisków na formularzu. Na obrazku poniżej, mamy przeniesiony przycisk Wyczyść, i umieszczone wszystkie przyciski na panelu po prawej stronie. Zapraszam do przedstawienia własnego projektu:

 

 

Po dodaniu nowych przycisków, zmień ich nazwy na btnMinus, btnDzielenie i btnMnozenie.(Innym sposobem, zmiany nazwy przycisku, jest po prostu kliknięcie prawym przyciskiem myszy na przycisk. Zostanie wtedy wyświetlone menu, w którym należy wybrać polecenie " Change Variable Name ".)

Techniki, której użyjemy, aby zapamiętać, który przycisk został kliknięty jest przypisanie właściwości text przycisku do zmiennej. Możemy użyć instrukcji switch, aby zbadać, jaki znak jest w zmiennej. Jeśli jest to symbol + można dodać, jeśli to jest symbol - będziemy odejmować; jeśli jest to symbol / będziemy dzielić, a jeśli jest to symbol * będziemy mnożyć.

 

Więc kliknij przycisk Source, aby wrócić do kodu. Dodaj następującą zmienną w górnej części okna z kodem, tuż poniżej dwóch pozostałych linii  z deklaracjami zmiennych:

private char znak;

Kod powinien wyglądać tak:

 

public class MojKalkulator extends javax.swing.JFrame {
        
        private double wynik1 = 0.0;
        private double wynik2 = 0.0;
        private char znak;
        
        /**
         * Creates new form MojKalkulator
         */
        public MojKalkulator() {
            initComponents();
        }

Możemy utworzyć metodę, aby uzyskać znak przycisku, który został kliknięty. Dodaj następującą metodę do kodu:

 

private void getOperator(String btnText){
        znak = btnText.charAt(0);
        wynik1 = wynik1 + Double.parseDouble(txtWyswietl.getText());
        txtWyswietl.setText("");
    }

Możesz dodać powyższy kod metod w dowolnym miejscu w kodzie, tak długo, jak jest między nawiasami klamrowymi klasy, a nie między nawiasami jakiejkolwiek innej metody.

Mamy metodę getOperator. To metoda void, więc nie zwraca żadnej wartości - po prostu wykonuje kod. W nawiasach okrągłych nagłówka metody, mamy zmienną String o nazwie btnText. To jest oczywiście tekst z przycisku, który został kliknięty.

Tekst z przycisku jest ciągiem. Jednak wyrażenie switch w Javie nie może obsługiwać ciągów, więc trzeba konwertować ciąg do znaku. Robimy to tak jak w linii poniżej:

znak = btnText.charAt(0);

Metoda charAt zwraca znak z łańcucha. Żądany znak znajduje się między nawiasami okrągłymi metody charAt. Symbol matematyczny z naszych przycisków jest zawsze na pozycji 0 w ciągu. Następnie jest przechowywany w zmiennej, którą właśnie utworzylismy w górnej części kodu.

Zwróć uwagę na dwie inne linie w kodzie. Są one dokładnie takie same, jak linie z przycisku Plus, robią dokładnie to samo - przechowują pierwszą cyfrę w zmiennej o nazwie wynik1. Każdy przycisk operatora musi to zrobić, więc warto mieć te dwie linie w naszej metodzie, a nie w kodzie operatora przycisku.

Znajdź kod przycisku btnPlus i usuń następujące dwie linie z niego:

wynik1 = wynik1 + Double.parseDouble(txtWyswietl.getText( ) );
txtWyswietl.setText("");

Zastąp je nastepującymi liniami:

String tekst_przycisku = btnPlus.getText();

getOperator(tekst_przycisku);

Pierwsza nowa linia dostaje tekst z przycisku Plus i przechowuje go w zmiennej łańcuchowej. Ta jest następnie przekazywana do naszej metody getOperator.

Te same dwie linie mogą być dodane do drugiego przycisku obsługi tylko należy zmianić nazwę przycisku.

Wróć do widoku projektu i dwukrotnie kliknij przycisk odejmowania. W utworzym kodzie, należy dodać:

String tekst_przycisku = btnMinus.getText();
getOperator(tekst_przycisku);

(Mimo, że używamy tę samą nazwę dla zmiennej łańcuchowej Java nie będzie się mylić, każda zmienna tekst_przycisku jest lokalna w procedurze kodu przycisku.)

Kliknij dwukrotnie przycisk dzielenie i dodaj następujący kod:

String tekst_przycisku = btnDzielenie.getText();
getOperator(tekst_przycisku);

A oto kod dla przycisku mnożenie:

String tekst_przycisku = btnMnozenie.getText();
getOperator(tekst_przycisku);

Teraz, gdy mamy kod dla wszystkich przycisków operatora, możemy dostosować przycisk Wynik.

W kodzie przycisku wynik, możemy skonfigurować instrukcję switch do zbadania tego, co jest w zmiennej znak.

 

switch ( znak ) {
case '+':
break;
case '-':
break;
case '/':
break;
case '*':
break;
}

Instrukcja switch ma instrukcję case dla każdego z operatorów matematycznych: +, -, /, i *. Nie dodano jeszcze żadnego kodu. Ale spójrz na kod w procedurze przycisku wynik:

wynik2 = wynik1 + Double.parseDouble( txtWyswietl.getText( ) ) ;
txtWyswietl.setText( Double.toString(wynik2) );
wynik1 = 0;

Ostatnie dwa wiersze są OK, i nie muszą być zmieniane. Pierwsza linia, jednak musi  być umieszczona w instrukcji switch. Może być przeniesiona i stosowana jako kod dla przypadku +:

case '+':
wynik2 = wynik1 + Double.parseDouble( txtWyswietl.getText( ) ) ;
break;

Jeśli został kliknięty przycisk minus, to możemy po prostu zmienić znak plus na minusa w wierszu powyżej:

case '-':
wynik2 = wynik1 - Double.parseDouble( txtWyswietl.getText( ) ) ;
break;

W przypadku dzielenia następująca linia:

case '/':
wynik2 = wynik1 / Double.parseDouble( txtWyswietl.getText( ) ) ;
break;

W przypadku mnożenia następująca linia:

case '*':
wynik2 = wynik1 * Double.parseDouble( txtWyswietl.getText( ) ) ;
break;

Oto cały kod dla przycisku równa się:

 

private void btnRownaActionPerformed(java.awt.event.ActionEvent evt) {                                         
        
        
        switch ( znak ) {
            case '+':
                wynik2 = wynik1 + Double.parseDouble(txtWyswietl.getText());
            break;
            case '-':
                wynik2 = wynik1 - Double.parseDouble(txtWyswietl.getText());
            break;
            case '/':
                wynik2 = wynik1 / Double.parseDouble(txtWyswietl.getText());
            break;
            case '*':
                wynik2 = wynik1 * Double.parseDouble(txtWyswietl.getText());
            break;
        }
        txtWyswietl.setText( Double.toString(wynik2));
        wynik1 = 0; 
    }   

Po dodaniu nowego kodu do przycisku równa się, uruchom kalkulator i wypróbuj jego działanie. Spróbuj wykonać następujące czynności, aby sprawdzić, czy to działa:

58. 6 + 37.5 (odpowiedź powinna być 96.1)
78 - 25.5 (odpowiedź powinna być 52.5)
68 / 8 (odpowiedź powinna być 8.5)
56.3 * 6.8 (odpowiedź powinna być 382.84)

I to jest nasz prosty kalkulator, który umożliwia dodawanie, odejmowanie, dzielenie i mnożenie.

Teraz, gdy mamy już trochę praktyki z obiektami formularza, stwórzmy nowy program, który korzysta z więcej wspólnych kontrolek, które umieścisz na formularzu.

 

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.