Instrukcja do zajęć laboratoryjnych
Java NetBeans
Spis treści
1.
WPROWADZENIE ................................................................................................................................................ 2
2.
TWORZENIE PROJEKTU - PODSTAWY .................................................................................................................. 3
3.
TWORZENIE PROJEKTU – PRZYKŁAD Z WŁASNYM PAKIETEM ............................................................................. 9
3.
TWORZENIE GUI – DODAWANIE 2. LICZB .......................................................................................................... 18
Data: 23.03.2010 r.
Autor: mgr inŜ. Paweł Wujek
2
1. Wprowadzenie
NetBeans jest projektem typu "open source" o coraz większej popularności i stale wzrastającej
społeczności uŜytkowników. O wielkim sukcesie NetBeans świadczy fakt, Ŝe z projektem tym
współpracuje juŜ prawie 100 (znaczących!) firm na całym świecie. Projekt NetBeans został
uruchomiony w czerwcu 2000 roku przez firmę Sun Microsystems będącą od tej pory głównym
jego sponsorem.
Obecnie istnieją dwa główne produkty: NetBeans IDE i NetBeans Platform. Oprócz nich dostępne
są dwa inne, będące rozszerzeniami do IDE: NetBeans Mobility Pack oraz NetBeans Profiler.
NetBeans IDE jest środowiskiem programistycznym (Integrated Development Environment - IDE)
- narzędziem słuŜącym do tworzenia, kompilowania, uruchamiania i testowania programów. Całe
IDE jest napisane w Javie, jednak umoŜliwia ono równieŜ tworzenie programów w innych
językach. Ponadto (oprócz NetBeans Mobility Pack i NetBeans Profiler) dostępna jest duŜa ilość
modułów rozszerzających jego moŜliwości. NetBeans IDE jest produktem dostępnym za darmo
oraz bez Ŝadnych ograniczeń co do jego uŜywania.
Dostępna jest równieŜ NetBeans Platform - jest to modułowa i łatwo rozszerzalna baza, słuŜąca
jako podstawa do tworzenia duŜych aplikacji typu "desktop". Oprócz tego niezaleŜni dostawcy
oprogramowania dostarczają róŜnego typu wtyczki i rozszerzenia, które łatwo integrują się z
NetBeans Platform i mogą być uŜyte do tworzenia własnych narzędzi i rozwiązań.
Wszystkie produkty NetBeans są tworzone jako "open source" i dostępne są za darmo zarówno do
komercyjnych jak i niekomercyjnych zastosowań. Kod źródłowy obu produktów dostępny jest na
licencji Common Development and Distribution License (CDDL).
3
2. Tworzenie projektu - podstawy
PoniŜej przedstawiono etapy tworzenia prostego projektu
1. Uruchom NetBeans IDE
2. Wybierz File->New Project->Java->JavaApplication->Next
3. Wpisz nazwę projektu w swoim katalogu roboczym i wciśnij przycisk Finish. Zwróć uwagę na
zaznaczone opcje „Set as Main Project” i „Create Main Class”.
4
4. Automatycznie zostanie utworzony projekt z róŜnymi katalogami i plikami. Przejrzyj zawartość
wszystkich katalogów projektu.
5. Warto równieŜ przejrzeć utworzony katalog i pliki korzystając np. z Total Commandera.
5
6. W edytorze otwórz plik z główną metodą „main”.
7. W miejsce komentarza „TODO code application logic here” wpisz swój kod, tj. linijkę z kodem:
System.out.println("Hello World!"); . W czasie pisania kodu korzystaj z automatycznych
podpowiedzi tak jak pokazano poniŜej. Okno z dostępnymi metodami moŜna wywołać wciskając
klawisze: Ctrl + Spacja (klawisz Ctrl i jednocześnie spacja). Warto zauwaŜyć, Ŝe pokazuje się
równieŜ krótki opis działania metody.
6
8. I tak powinno wyglądać ciało metody „main”. Nie zapomnij zapisać projektu.
9. Teraz moŜesz przystąpić do kompilacji projektu wybierając z menu Run->Build Main Project
lub wciskając przycisk F11.
7
10. W wyniku kompilacji w okienku „Output” powinny pojawić się komunikaty tak jak poniŜej.
11. Teraz moŜesz przystąpić do uruchomienia programu wybierając z menu Run->Run Main
Project lub wciskając klawisz F6.
12. W oknie „Output” pojawi się rezultat działania napisanego programu.
8
13. Pamiętaj, Ŝe automatycznie zostanie utworzony plik o nazwie projektu i rozszerzeniu „jar”. W
tym przypadku jest to plik „HelloWorldApp.jar”. Są to zarchiwizowane wszystkie niezbędne
pliki projektu. Aplikację moŜesz uruchomić korzystając z linii poleceń i wpisując: java –jar
„HelloWorldApp.jar” .
9
3. Tworzenie projektu – przykład z własnym pakietem
Opracowano na podstawie materiałów z http://www.netbeans.org/kb/50/index.html.
Tworzenie Projektu
Na początku utworzymy nową bibliotekę klas Java dla klas pomocniczych, których uŜyjemy później. Następnie
naleŜy utworzyć nową aplikację Java, która będzie stanowić projekt główny. Kiedy projekt MyApp będzie juŜ
gotowy dodamy do jego classpath klasy z MyLib.
Tworzenie Nowej Biblioteki Klas Java
1. Wybierz File > New Project (Ctrl-Shift-N). W Categories wybierz Java. W Projects wybierz Java Class
Library i naciśnij Next.
2. W polu Project Name wpisz
MyLib
. Ustaw połoŜenie projektu na dowolny katalog na twoim
komputerze. Od tego momentu będziemy odwoływać się do tego katalogu jako
NetBeans_projects
.
Uwaga: Podana ścieŜka powinna wyglądać tak:
/
NetBeans_projects
/MyLib/
3. Naciśnij Finish. Projekt MyLib zostanie otwarty w oknach zarówno Projects jak i Files.
10
Tworzenie Nowej Aplikacji Java
1. Wybierz File > New Project. Pod Categories, wybierz Java. Pod Projects, wybierz Java Application i
naciśnij Next.
2. W polu Project Name wpisz
MyApp
. Upewnij się, Ŝe lokalizacja projektu to
NetBeans_projects
.
3. Wprowadź
acrostic.Main
jako klasę główną.
4. Upewnij się, Ŝe pola Set as Main Project oraz Create Main Class są zaznaczone.
5. Naciśnij Finish. Projekt MyApp pojawi się w oknie Project a
Main.java
otworzy się w oknie Edytora
Kodu Źródłowego(Source Editor).
11
Konfiguracja Classpath Kompilacji
1. W oknie Projects, kliknij prawym klawiszem myszy na Libraries dla projektu My App i wybierz Add
Project.
2. Przejdź do
NetBeans_projects/
i wybierz folder projektu
MyLib
. Project JAR Files pokazuje pliki
JAR, które mogą być dodane do projektu. ZauwaŜ, Ŝe plik JAR dla MyLib jest obecny pomimo, Ŝe nie
utworzyliśmy jeszcze Ŝadnego pliku JAR. Ten plik JAR zostanie utworzony za pierwszym i kaŜdym
kolejnym razem gdy będziemy budować i uruchamiać projekt MyApp.
12
3. Kliknij na Add Project JAR Files.
4. Rozwiń odgałęzienie Libraries. ZauwaŜ, Ŝe plik JAR z MyLib jest dodany do classpath projektu MyApp.
Pisanie i Edytowanie Kodu Źródłowego Java
Teraz potrzebujemy utworzyć pakiet Java i dodać metody, których uŜyjemy przy konstruowaniu naszego
akrostychu, po czym zaimplementujemy metodę
acrostic
w klasie
Main
.
13
Tworzenie Plików oraz Pakietów Klas Java
1. Kliknij prawym przyciskiem myszy na projekcie MyLib i wybierz New > Java Class. Wpisz
LibClass
jako nazwę nowej klasy, wpisz
org.me.mylib
w polu Package i kliknij Finish.
LibClass.java
zostanie otwarta w oknie Edytora Kodu Źródłowego.
2. W
LibClass.java
, przejdź do linii pomiędzy
public class LibClass { a }
i wpisz poniŜszy kod
metody:
public static String acrostic(String[] args) {
StringBuffer b = new StringBuffer();
for (int i = 0; i < args.length; i++) {
if (args[i].length() > i) {
b.append(args[i].charAt(i));
} else {
b.append('?');
}
}
return b.toString();
}
3. Jeśli wklejony kod jest niepoprawnie sformatowany, naciśnij Alt+Shift+F aby przeformatować cały plik.
4. Naciśnij Carl+S, Ŝeby zapisać utworzony plik.
14
Edytowanie Pliku Java
1. Wybierz zakładkę
Main.java
w Edytorze Kodu Źródłowego. Jeśli nie jest juŜ otwarta, rozwiń MyApp >
acrostics w oknie Projects i kliknij dwa razy
Main.java
.
2. Usuń z kodu komentarz
// TODO code application logic here
w metodzie
main
i wpisz:
String result = Li
3. Naciśnij Ctrl-Spacja Ŝeby otworzyć okno automatycznego uzupełniania kodu. IDE oferuje uzupełnianie
kodu dla wszystkich klas znajdujących się w classpath kompilacji projektu. Wybierz
LibClass
(org.me.mylib)
i naciśnij Enter. IDE uzupełnia resztę nazwy klasy ale równieŜ automatycznie tworzy
deklarację import dla klasy.
Uwaga: IDE wyświetla równieŜ drugie okno nad oknem uzupełniania kodu zwierające Javadoc dla
wybranej klasy lub pakietu. Z uwagi na to, Ŝe dla większości pakietów Javadoc nie ma, dopóki nie
podświetli się jakiejś klasy, w oknie będzie widoczna informacja o tym, Ŝe "Nie moŜna znaleźć
Javadoc".
4. W głównej klasie wstaw kropkę po
LibClass
. Okno uzupełniania kodu pojawi się ponownie. Wybierz
metodę
acrostic(String[]args)
i naciśnij Enter. IDE wstawia metodę
acrostic
i polazuje jej
parametry w dymku podpowiedzi.
5. Naciśnij jeszcze raz Ctrl-Spacja Ŝeby wyświetlić okno uzupełniania kodu, wybierz
args
i naciśnij Enter.
6. Wstaw średnik. ZauwaŜ, Ŝe jest on wstawiany po prawym nawiasie pomimo, iŜ punkt w którym został
wstawiony jest jeszcze wewnątrz nawiasów. Ostatecznie linijka kodu będzie wyglądać tak:
String result = LibClass.acrostic(args);
7. Naciśnij Enter, Ŝeby przejść do nowej linii. Wpisz
sout
i naciśnij Tab. Skrót
sout
zostaje
automatycznie zamieniony na
System.out.println("");
z kursorem między cudzysłowami. Wpisz
Result =
między cudzysłowami i
+ result
za drugim cudzysłowem. W rezultacie powinniśmy
otrzymać:
System.out.println("Result = " + result);
15
8. Naciśnij Ctrl-S Ŝeby zapisać zmiany.
Kompilacja i Uruchamianie Projektu
W tym momencie naleŜy ustawić argumenty uruchomieniowe aplikacji i klasy main, Ŝeby moŜna było projekt
uruchomić. Zwrócimy równieŜ uwagę na narzędzia czyszczące kod oraz budowania i generowania dokumentacji
Javadoc.
Ustawianie Argumentów Uruchomieniowych
1. Kliknij prawym klawiszem na MyApp w oknie projektu, wybierz Properties i kliknij na Run po lewej
stronie okna dialogowego. ZauwaŜ, Ŝe klasa główna jest juŜ ustawiona jako
acrostic.Main
.
2. Wpisz
However we all feel zealous
w polu Arguments i kliknij OK.
Uruchamianie Głównego Projektu
1. Wybierz Run > Run Main Project (F6) z menu Run. Kliknij dwukrotnie na oknie Output, Ŝeby je
zmaksymalizować by móc widzieć całość wyjścia. ZauwaŜ, Ŝe Ant najpierw tworzy
MyLib.jar
, a
dopiero później przy jego uŜyciu kompiluje MyApp. Na końcu wypisuje wyjście programu,
Result =
Hello
(jest to akrostych wyraŜenia podanego programowi jako argument uruchomieniowy).
16
2. Wybierz okno Files i rozwiń folder projektu MyApp. Zbudowane pliki znajdują się w folderze
build
.
3. Naciśnij F6, Ŝeby uruchomić program. Nie ma potrzeby kompilować niczego od nowa, a program
zostaje uruchomiony.
Czyszczenie i Budowanie Projektu
1. Wybierz Build > Clean and Build Main Project (Shift-F11). Podczas tego procesu oba projekty, MyLib i
MyApp, są czyszczone i ponownie budowane.
2. Kliknij prawym przyciskiem myszy na projekt MyLib w oknie Projects i wybierz Clean Project. Tym
razem wyczyszczony zostanie jedynie projekt MyLib.
Budowanie Pojedynczego Projektu
1. Kliknij prawym przyciskiem na MyLib w oknie Projects.
2. Wybierz z menu kontekstowego Build.
Generowanie Javadoc
1. Wybierz projekt MyApp.
2. W głównym menu IDE kliknij Run > Generate Javadoc(MyApp).
IDE wyświetli wyjście Javadoc w oknie Output, a przeglądarka internetowa zostanie otwarta
wyświetlając Javadoc.
Testowanie i Debugowanie Projektu
Teraz uŜywając JUnit utworzymy i uruchomimy dla naszego projektu test, a następnie uruchomimy go w
debugerze IDE, Ŝeby sprawdzić czy program nie zawiera błędów.
Tworzenie Testów JUnit
1. Kliknij prawym przyciskiem na
LibClass.java
w oknie Projects i wybierz Tools >Create JUnit Tests
(Ctrl-Shift-U). Kliknij OK aby uruchomić test z ustawieniami domyślnymi. IDE tworzy pakiet
org.me.mylib
oraz plik
LibClassTest.java
w pakiecie Test Packages.
17
2. W
LibClassTest.java
, usuń ciało metody
testAcrostic
i wpisz albo wklej w to miejsce poniŜszy
kod:
System.err.println("Running testAcrostic...");
String result = LibClass.acrostic(new String[]
{"fnord", "polly", "tropism"});
assertEquals("Correct value", "foo", result);
3. Zapisz plik naciskając Ctrl-S.
Uruchamianie Testów JUnit
1. Zaznacz projektu MyLib i wybierz z menu IDE: Run > Test (MyLib) (Alt+F6). W oknie Output pojawia
się zakładka
MyLib (test)
. Testy JUnit są kompilowane i uruchamiane. Dane na wyjściu testu JUnit
wskazują, Ŝe program przeszedł go pomyślnie.
2. Zamiast testować od razu cały projekt, moŜna równieŜ przeprowadzić test oddzielnie dla pojedynczego
pliku. Wybierz zakładkę
LibClass.java
w Edytorze Kodu Źródłowego i z menu IDE wybierz: Run >
Test File.
Debugowanie Projektu
1. W pliku
LibClass.java
, przejdź do metody
acrostic
i ustaw kursor gdziekolwiek w kodzie
b.append(args[i].charAt(i));
. Naciśnij teraz Carl+F8 aby ustawić w tym miejscu breakpoint.
2. Wybierz Debug > Debug Main Project (Ctrl+F5). IDE otwiera okna debugowania i uruchamia program
do chwili dojścia do ustawionego wcześniej breakpointa.
3. Wybierz okno Variables i rozwiń
args
. Tablica łańcuchów literowych zawiera tekst wprowadzony
wcześniej jako argument uruchomieniowy programu.
4. Kliknij Step Into (F7) w pasku narzędziowym Ŝeby program został wykonany do końca i zobacz jak
tworzony jest akrostych.
W momencie kiedy program kończy działanie, okna debugera zamykają się.
18
3. Tworzenie GUI – dodawanie 2. liczb
Tworzenie nowej aplikacji
1. Wybierz File > New Project. Pod Categories wybierz Java. Pod Projects wybierz Java Application I
naciśnij Next.
2. W polu Project Name wpisz NumberAddiction. Upewnij się, Ŝe lokalizacja projektu to NetBeans_projects
w katalogu z numerem twojej grupy.
3. Upewnij się, Ŝe pole Set as Main Project jest zaznaczone. Odznacz pole Create Main Class jeśli jest
zaznaczone.
4. Naciśnij Finish.
Tworzenie interfejsu uŜytkownika
1. W oknie Projects, kliknij prawym przyciskiem myszy na NumberAddiction, wybierz New>JFrame Form.
2. Jako class name wpisz NumberAdditionUI.
3. Jako package wpisz my.numberaddition.
4. Naciśnij Finisz.
19
Dodawanie komponentów
Dodamy teraz do naszej aplikacji kilka komponentów z JPanel(Panel). Będą to trzy etykiety, trzy pola
tekstowe i trzy przyciski.
Jeśli nie widzisz okna Palette w prawym górnym rogu wybierz Windows > Palette.
1. Rozpocznij od zaznaczenia Panel (JPanel) z Palette. Następnie przeciągnij je na formę(JFrame).
2. JPanel jest zaznaczony w oknie Properties kliknij w napis No Border obok napisu Border aby wyświetlić
okno właściwości formy.
3. W oknie Border wybierz z listy TitledBorder I wpisz Number Addition w polu Title. Kliknij OK aby
zapisać zmiany i zamknąć okno.
4. Zobaczysz teraz pustą formę (JFrame) z tytułem “Number Addition”
5. Dodaj teraz trzy etykiety (JLabels), trzy pola tekstowe (JTextFields) I trzy przyciski (JButtons) i umieść
je tak jak na obrazku poniŜej.
20
Zmiana nazw komponentów.
Zmienimy teraz tekst wyświetlany na dodanych elementach
1. Kliknij dwukrotnie na jLabel1 i zmień tekst na First Number.
2. Kliknij dwukrotnie na jLabel2 i zmień tekst na Second Number.
3. Kliknij dwukrotnie na jLabel1 i zmień tekst na Result.
4. Kliknij dwukrotnie na jTextField1 i usuń przykładowy tekst.
5. Kliknij dwukrotnie na jButton1 i zmien tekst na Clear.
6. Kliknij dwukrotnie na jButton2 i zmien tekst na Add.
7. Kliknij dwukrotnie na jButton3 i zmien tekst na Exit.
Ostatecznie GUI powinno wyglądać następująco.
21
Jeśli po dwukrotnym kliknięciu otworzy się okno kodu źródłowego naleŜy kliknąć pole Design znajdujący się
po lewej stronie u góry.
Dodawanie funkcjonalności
W naszej aplikacji dodamy teraz funkcjonalność do przycisków Add, Clear i Exit. Pola jTextField1 i
TextField2 zostaną uŜyte do wpisania danych przez uŜytkownika a pole jTextField3 jaki miejsce, gdzie
zostanie wypisany wynik działania programu.
Przycisk Exit
Musimy dodać funkcje obsługi wyjątków (event handler) do przycisku Exit, reagującą na wystąpienie
zdarzenia związanego z tym przyciskiem. W naszym przypadku chcemy wiedzieć kiedy przycisk został
wciśnięty zarówno przez mysz jak i przez klawiaturę. Musimy uŜyć funkcji ActionListener w odpowiedzi
na zdarzenie ActionEvent.
1.
Kliknij prawym przyciskiem na przycisk Exit. Z menu wybierz Events > Action > ActionPerformed.
ZauwaŜ, Ŝe menu zawiera duŜo więcej zdarzeń na które moŜna zareagować. Kiedy wybierzesz
actionPerformed IDE automatycznie doda ActionListener do przycisku Exit i wygeneruje funkcję
obsługi zdarzenia.
2.
IDE otworzy okno kodu źródłowego I umieści kursor w miejscu, gdzie powinieneś umieścić kod
obsługujący zdarzenie. Kod źródłowy powinien wyglądać następująco:
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
//TODO: Add your handling code here:
}
22
3.
Dodamy teraz kod, który spowoduje poprawne działanie przycisku Exit. NaleŜy wpisać System.exit(0);
w miejsce linie TODO Add your handling code here:. Kod źródłowy powinien wyglądać następująco:
Przycisk Clear
1. Kliknij zakładkę Design nad oknem kodu źródłowego, aby powrócić do okna tworzenia aplikacji
graficznej.
2. Kliknij prawym przyciskiem na przycisk Clear. Z menu wybierz Events > Action > ActionPerformed.
3. Aby przycisk Clear wczyścił cały tekst znajdujący się w polu jTextFields naleŜy dodać następujący kod
źródłowy:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
}
PowyŜszy kod usunie tekst ze wszystkich trzech pól JTextFields.
Przycisk Add
Naciśnięcie tego przycisku powinno spowodować następujące czynności:
1. Odczytanie danych z pól
jTextField1
i
jTextField2
oraz konwersja typu String na float,
2. dodanie dwóch liczb,
3. konwersje wyniku na typ String i umieszczenie go w polu
jTextField3
.
Aby to zrobić naleŜy:
1. Kliknij zakładkę Design nad oknem kodu źródłowego, aby powrócić do okna tworzenia aplikacji
graficznej.
2. Kliknij prawym przyciskiem na przycisk Clear. Z menu wybierz Events > Action > ActionPerformed
23
3. Nalezy teraz dodać poniŜszy kod źródłowy:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt){
// First we define float variables.
float num1, num2, result;
// We have to parse the text to a type float.
num1 = Float.parseFloat(jTextField1.getText());
num2 = Float.parseFloat(jTextField2.getText());
// Now we can perform the addition.
result = num1+num2;
// We will now pass the value of result to jTextField3.
// At the same time, we are going to
// change the value of result from a float to a string.
jTextField3.setText(String.valueOf(result));
}
Nasz program jest juŜ skończony. MoŜemy teraz go skompilować i uruchomić.
Uruchamianie programu
1. Wybierz Run > Build Main Project lub F11
2. Kiedy kompilacja się zakńczy wybierz Run > Run Main Project lub F6.
3. Jeśli pojawi się okno z komunikatem “Your Project NumberAddition does not have a main class set”
nalezy zaznaczyć my.NumberAddition.NumberAdditionUI jako główną klasę i kliknąć OK
4. Twój uruchomiony program powinien wyglądać podobnie jak na obrazku poniŜej.
Sprawdź teraz jego działanie dla kilku liczb.