Inne działy

Java przykładowe programy

 

Java zdarzenia

 

W poprzedniej lekcji projektowaliśmy kalkulator w Java. W tej lekcji dowiesz się o zdarzeniach dla obiektów formularza Java. 

W zakresie programowania, zdarzenie zachodzi, gdy coś specjalnego się dzieje. Dla formularzy, zdarzenia to działania takie gdy przycisk zostanie kliknięty, poruszająca się mysz, tekst jest wpisywany do pól tekstowych, zamknięcie programu i wiele innych działań.

Zdarzenia są obiektami w Javie. Pochodzą one z szeregu klas zapisanych w java.util.EvenObject .Po kliknięciu przycisku, przycisk mówi, że jest źródłem zdarzenia. Ale sam akt kliknięcia generuje obiekt zdarzenia, a następnie szuka obiektu, który nasłuchuje, powiedzmy, kliknięcia myszką lub naciśnięcie klawisza, lub jakiegokolwiek innego zdarzenia, które mogą zdarzyć się na formularzu. Pole tekstowe, na przykład, może nasłuchiwać kliknięcia klawiszy. Lub lista rozwijana może nasłuchiwać, która pozycja na liście została kliknięta.

Różne obiekty (źródła) generują inne zdarzenia. Dla przycisku, zdarzenie, które jest domyślne jest ActionListener . Dla pola tekstowego, to KeyEvent . Pomyśl tak: obiekt zdarzenia jest odpowiedzialny za przekazywanie wiadomości do tyłu i do przodu pomiędzy obiektami formularzy, które czekają na to co się stało.

Jeśli to wszystko brzmi nieco skomplikowane, to nie martw się - to jest skomplikowane!  Ale niektóre przykłady programowania mogą wyjaśnić działanie. Najpierw słowo o tym, jak nasz kalkulator zadziała.

Jeśli chcemy dodać 3 + 2, musimy najpierw kliknąć przycisk 3. Liczba 3 pojawi się w polu tekstowym. Następnie klikamy na przycisk Plus, a ten informuje program, że chcemy dodać liczby. Będziemy również musieli wyczyścić pole tekstowe aby było gotowe do przyjęcia następnej liczby. Następnie wpisujemy liczbę 2, i przechowujemy tę wartość wraz z 3. Kliknięcie przycisku równa się, aby uzyskać sumę, liczb (3 i 2) i dodać je razem. Wreszcie, odpowiedź jest wyświetlana w polu tekstowym.

Pierwszym problemem jest to, jak otrzymać liczby z przycisków. Możemy to zrobić poprzez zwrot właściwości text przycisku. Kiedy już mamy tekst, możemy umieścić go w polu tekstowym. Ale potrzebujemy zdarzenia ActionEvent gdy klikniemy na przycisku.

W widoku projektu w NetBeans, wybierz przycisk numer 1. Spójrz na okno Navigatora w lewym dolnym rogu. Zlokalizuj przycisk btnJeden. Teraz kliknij prawym przyciskiem myszy, aby wyświetlić następujące menu:

 

 

Wybierz Event z menu. Z podmenu, kliknij na Action , a następnie  na actionPerformed :

Po kliknięciu na actionPerformed będzie utworzony zalążek kodu dla przycisku btnJeden:

private void btnJedenActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

}

Pierwsza linia jest nieco długa. Ale to tylko metoda z obiektu ActionEvent między nawiasami okrągłymi. Po kliknięciu przycisku, piszemy kod, który będziemy wykonywać między nawiasami klamrowymi.

 

Pisanie kodu dla przycisków z liczbami w naszym kalkulatorze Java

Aby przypisać właściwość tekst z obiektu formularza, można użyć metody gettext obiektu(jeśli taka występuje). Aby uzyskać dostęp do właściwości tekst przycisku btnJeden możemy użyć poniższego kodu:

String btnJedenTekst = btnJeden.getText( );

Aby uzyskać tekst z naszego pola tekstowego, możemy wykonać poniższy kod:

String poleTekstowe = txtWyswietl.getText( );

Jeśli chcemy umieścić coś w polu tekstowym, użyjmy metody setText:

txtWyswietl.setText( btnJedenTekst );

Wypróbuj kod. Dodaj ten kod do kodu procedury:

private void btnJedenActionPerformed(java.awt.event.ActionEvent evt) {

String btnJedenTekst = btnJeden.getText( );
txtWyswietl.setText(btnJedenTekst);

}

Uruchom program i przetestuj go. Kliknij przycisk 1, a okaże się, że cyfra 1 pojawi się w polu tekstowym.

Nie jest to problem, jednak. Co zrobić, jeśli chcesz, aby wprowadzić liczbę 11 lub liczbę 111? Po kliknięciu kilkakrotnie na przycisk, nic się nie dzieje. Zawsze jest 1, bez względu na to ile razy klikamy na przycisk.

Powodem jest to, że nasz kod nie pamięta co było wyświetlone w polu tekstowym wcześniej. Po prostu umieszcza cały czas liczbę 1. Gdybyśmy chcieli wpisać liczbę 11, to musimy zapamiętać pierwszą cyfrę 1. Aby to zrobić, wystarczy pobrać tekst z pola tekstowego i połączyć go z tekstem przycisku. Zmień pierwszą linię kodu, w następujący sposób:

String btnJedenTekst = txtWyswietl.getText() + btnJeden.getText();

Teraz musimy przypisać właściwość tekst z pola tekstowego i połączyć ją z właściwością tekst przycisku. Wynik zapiszemy w zmiennej o nazwie btnJedenTekst.

Uruchom program ponownie i kliknij przycisk numer 1 kilka razy. Okaże się, że pole tekstowe wyświetla serię jedynek.

Możemy dodać ten sam kod dla wszystkich przycisków numerycznych na kalkulatorze. Wróć do widoku projektu. Zamiast klikać prawym przyciskiem myszy w obszarze Navigatora, możemy w inny sposób dodać akcję dla przycisku, po prostu kliknij go dwukrotnie. Więc dwukrotnie kliknij przycisk numer 2. Kod procedury zostanie utworzone, tak jak za ostatnim razem.

Dodaj następujący kod do niej:

private void btnDwaActionPerformed( java.awt.event.ActionEvent evt ) {

String btnDwaTekst = txtWyswietl.getText() + btnDwa.getText();
txtWyswietl.setText( btnDwaTekst );

}

Jedyną różnicą w kodzie jest nazwa zmiennej String (nazwana teraz btnDwaTekst ), oraz fakt, że pobieramy dane z właściwości tekst przycisku btnDwa . W nawiasach okrągłych metody setText umieszczamy nazwę zmiennej String.

Uruchom ponownie program. Teraz powinieneś być w stanie kliknąć przyciskami 1 i 2 i powinien pojawić się tekst w polu tekstowym:

 

 

Dodaj ten sam kod dla wszystkich przycisków kalkulatora. Więc kliknij dwukrotnie każdy przycisk, aby uzyskać kod procedury i dodaj dwie linie kodu dla każdego przycisku. Trzeba będzie zmienić nazwę zmiennej String. Oto kod dla przycisku 3:

String btnTrzyTekst = txtWyswietl.getText() + btnTrzy.getText();
txtWyswietl.setText( btnTrzyTekst );

Można skopiować i wkleić kod, który już masz. A potem po prostu zmienić nazwę zmiennej String, nazwę przycisku po części btn, i część między nawiasami okrągłymi metody setText. Jeśli widzisz jakieś podkreślenia to wiesz, że zrobiłeś coś źle.

Kiedy skończysz, kod dla wszystkich przycisków numerycznych powinien wyglądać tak:    

 

private void btnJedenActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String btnJedenTekst = txtWyswietl.getText() + btnJeden.getText();
        txtWyswietl.setText(btnJedenTekst);
    }                                        

    private void btnDwaActionPerformed(java.awt.event.ActionEvent evt) {                                       
        String btnDwaTekst = txtWyswietl.getText() + btnDwa.getText();
        txtWyswietl.setText( btnDwaTekst );
    }                                      

    private void btnTrzyActionPerformed(java.awt.event.ActionEvent evt) {                                        
        String btnTrzyTekst = txtWyswietl.getText() + btnTrzy.getText();
        txtWyswietl.setText( btnTrzyTekst );
    }                                       

    private void btnCzteryActionPerformed(java.awt.event.ActionEvent evt) {                                          
        String btnCzteryTekst = txtWyswietl.getText() + btnCztery.getText();
        txtWyswietl.setText( btnCzteryTekst );
    }                                         

    private void btnPięćActionPerformed(java.awt.event.ActionEvent evt) {                                        
        String btnPięćTekst = txtWyswietl.getText() + btnPięć.getText();
        txtWyswietl.setText( btnPięćTekst );
    }                                       

    private void btnSześćActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String btnSześćTekst = txtWyswietl.getText() + btnSześć.getText();
        txtWyswietl.setText( btnSześćTekst );
    }    

    private void btnSiedemActionPerformed(java.awt.event.ActionEvent evt) {                                          
        String btnSiedemTekst = txtWyswietl.getText() + btnSiedem.getText();
        txtWyswietl.setText( btnSiedemTekst );
    }                                                                             

    private void btnOsiemActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String btnOsiemTekst = txtWyswietl.getText() + btnOsiem.getText();
        txtWyswietl.setText( btnOsiemTekst );
    }                                        

    private void btnDziewięćActionPerformed(java.awt.event.ActionEvent evt) {                                            
        String btnDziewięćTekst = txtWyswietl.getText() + btnDziewięć.getText();
        txtWyswietl.setText( btnDziewięćTekst );
    }                                           

    private void btnZeroActionPerformed(java.awt.event.ActionEvent evt) {                                        
        String btnZeroTekst = txtWyswietl.getText() + btnZero.getText();
        txtWyswietl.setText( btnZeroTekst );
    }       

Uruchom kalkulator i przetestuj go. Powinieneś być w stanie wprowadzić wszystkie cyfry od 0 do 9:

 

 

W następnej części, będziemy pisać kod Java dla przycisku Plus w kalkulatorze.

 

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.