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.