Przystępujemy do następnego artykułu po zapowiedzianej dłuższej przerwie. Przyznajcie szczerze, niezbyt piękny był ten zapis z klasami, prawda? Tak trzeba było pisać zanim pojawiła się Java 8. OK, teraz przystąpimy do bardziej nowoczesnego sformułowania. Ono istnieje już od sześciu lat więc o nim też mogliście już nieraz usłyszeć. Przedstawiam Państwu "wyrażenie lambda" (ang. "lambda expression")!

I to już będzie ostatnia część na dzisiejszy dzień, zatem powracamy do tego samego pytania: "jak zaprogramować zdarzenie do przycisku tak, aby po jego naciśnięciu coś się wydarzyło?". Dłuży się to niemiłosiernie, natomiast trzeba aż tak wielu wyjaśnień, aby korzystać z tego świadomie i rozsądnie. Znamy już klasy wewnętrzne, ich budowę, dowiemy się teraz jak mogą nam pomóc w rozwiązaniu problemu. Samo tworzenie zdarzeń w Javie określane jest jako "obsługa zdarzeń" tak jak to mieliśmy z wyjątkami, co nie? Przechodzimy do tematu.

Nie możemy dalej iść z biblioteką "Swing" dopóki nie zapoznamy się ze sposobami "podpinania" zdarzeń. Istnieją dwie metody: starsza istniejąca od Javy 5.0 (2004) i nowsza od Javy 8 (2014). Pokażę Wam obie i podzielę to na dwie części. Najpierw struktura sama w sobie, a potem jak ją wykorzystać i "podstawić" do przycisku, aby coś się wydarzyło po jego naciśnięciu. Oto pierwsza metoda: klasa wewnętrzna. Szczegóły w środku!

Kontynuujemy pisanie o bibliotece "Swing" języka Java. Aby w ogóle robić coś porządnego, trzeba najpierw zapoznać się ze wszystkimi podstawowymi komponentami jakie oferuje "Swing". Jeśli zainteresowałem Was tym tematem mającym za sobą ponad 20 lat (i co z tego?), przechodzimy od razu do konkretów. To będzie na razie sama lista z wyjaśnieniami co do czego służy i jak prezentuje się w oknie.

4 maja, zaczynamy kolejną serię! Będę miał przyjemność pisać Wam na temat biblioteki "Swing" należącej do Javy, która pozwala na tworzenie graficznych interfejsów użytkownika. Nie będzie o "JavaFX"! Wiem o jej istnieniu, ale mam swoje powody, aby o niej teraz nie pisać. Jak utworzyć pierwsze okno i dlaczego w Swing zapraszam do artykułu.

Ostatnia wypowiedź na dzisiaj (dotycząca Javy oczywiście) sięgać będzie tematu formatowania danych w postaci łańcuchów znaków, czyli typu "String". Nie chodzi tylko o konwertowanie liczb na łańcuchy, ale także ich ładne prezentowanie. Na przykład wypisanie dużej liczby z odstępami, czy też wyświetlenie wyników danej kolumny z tabelki o tej samej szerokości pola, aby kolejne dane się "nie rozjeżdżały". Prezentowana tutaj metoda która nam to umożliwi to "String.format". Zapraszam już po raz ostatni w dniu Konstytucji 3 Maja!

Czy przyszła Wam do głowy jedna okoliczność związana ze słowem kluczowym "throws" omawianym tutaj? Obsługa wyjątków kryje jeszcze jedną tajemnicę. Jak wspomniałem, "throws" "przerzuca" odpowiedzialność obsłużenia zgłoszonego wyjątku metodzie wywołującej. A co w przypadku gdy "main" posiada taką definicję? Jakie konsekwencje mogą z tego wyniknąć? Czytajcie dalej, a okaże się to ciekawsze od powieści kryminalnej.

Zabieram się za kolejną porcję obfitego redagowania na własnej stronie. Znowu Java bez zmian i opowiem czym jest import statyczny oraz czym się on różni od zwykłego. To również stanowi jedynie element poboczny i może pomóc lub zaszkodzić w zależności od tego, kto czyta nasz kod. Nie migajcie się, poznajcie kolejny element o którym się mało mówi.

Jest jeszcze wczesna godzina, zatem macie moją wypowiedź już po raz czwarty z rzędu TEGO SAMEGO DNIA! Nie wiem jak ja to znoszę i póki co, nie chcę się nad tym zastanawiać. Przechodzimy do kolejnego prostego tematu związanego z Javą, który macie traktować jako całkowicie opcjonalny. Dotyczy on statyczności, jest rzadko stosowany, a to coś kryje się pod nazwą "inicjalizator statyczny". Poznajcie szerzej ten termin razem z przykładem pozostawionym w środku.

Gotowi na dalsze wyjaśnienia związane z tym samym artykułem? Został jeszcze jeden element. Pamiętacie dopisek "throws" w nagłówku funkcji? Jest to nieco rzadziej omawiany element a szkoda, bo równie przydatny co samo przechwytywanie wyjątków. Obsługa wyjątków w języku Java to jedno, a "przerzucenie" tej odpowiedzialności na metodę wywołującą to zupełnie inna bajeczka.