20
1 Primena integrisanih razvojnih alata - Vežbe Java i NetBeans IDE 6.5 Kreiranje korisničkog interfejsa desktop aplikacije Primer jednostavne aplikacije: 1. Odabrati opciju File > New Project 2. Meñu kategorijama odabrati Java i podkategoriju Java Application 3. Dati naziv projektu, i podesiti opcije kao na slici: Kao početak izgradnje interfejsa potrebno je kreirati jedan kontejner koji će sadržati elemente koje nameravamo da dodamo na interfejs, Kreiramo JFrame kontejner: 1. Odabrati opciju New > JFrame Form 2. Dati naziv formi i definisati paket:

Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

1

Primena integrisanih razvojnih alata - Vežbe Java i NetBeans IDE 6.5

Kreiranje korisni čkog interfejsa desktop aplikacije Primer jednostavne aplikacije:

1. Odabrati opciju File > New Project 2. Meñu kategorijama odabrati Java i podkategoriju Java Application 3. Dati naziv projektu, i podesiti opcije kao na slici:

Kao početak izgradnje interfejsa potrebno je kreirati jedan kontejner koji će sadržati elemente koje nameravamo da dodamo na interfejs, Kreiramo JFrame kontejner:

1. Odabrati opciju New > JFrame Form

2. Dati naziv formi i definisati paket:

Page 2: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

2

3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva, otvara se prozor za dizajn forme i odgovarajuća paleta.

4. Na formu dodati jedan JPanel i zatim na formu dodati tri labele (JLabels), tri polja za unos teksta (JTextFields), i tri dugmeta (JButtons):

5. Preimenovati komponente tako da izgledaju kao na slici:

Page 3: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

3

Dodavanje funkcije dugmadima

1. Desnim klikom na dugme Izañi pojavi se konteksni meni i treba odabrati Events > Action > ActionPerformed

2. U metodi koju NetBeans kreira zameniti red: // TODO add your handling code here: Sa: System.exit(0);

3. istim postupkom na dugme Briši kod zameniti sa: jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText("");

4. ovaj kod briše sadržaj tri polja. 5. Za dugme Saberi na isti način uneti

float num1, num2, result; num1 = Float.parseFloat(jTextField1.getText()); num2 = Float.parseFloat(jTextField2.getText()); result = num1+num2; jTextField3.setText(String.valueOf(result));

Pokretanje programa:

1. Odabrati Run > Run Main Project 2. Ako upozori da projekat nema glavnu klasu, odabrati je iz liste

Page 4: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

4

3. Rezultat izvoñenja je:

4. Ako želite Windows Look and Feel u main klasu uneti naredni kod: try { UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName()) ; } catch (Exception ex) { ex.printStackTrace(); }

5. Pa će prozor izgledati:

Page 5: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

5

Zadatak 1. Programirati aplikaciju koja će sadržati formu kao na slici:

U Combo box-u definisati sledeće opcije:

Page 6: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

6

Dodavanje funkcija komponenti jList

1. Dodavanje elemenata u listu. Dodati naredni kod koji kreira model koji će omogućavati unos elemenata u listu:

DefaultListModel listModel = new DefaultListModel() ;

2. Za dugme Dodaj odabrati opciju Events>Action>actionPerformed i u metodu za obradu

izuzetka dodati sledeći kod: String str = jTextField5.getText(); listModel.addElement(str); jList1.setModel(listModel);

3. Brisanje elmenata iz liste. Za dugme izbaci dodati metodu za obradu izuzetka sa sledećim

kodom:

listModel.removeElementAt(jList1.getSelectedIndex() );

4. Postavljanje sadržaja selektovanog polj liste u TextField. Na jList kliknuti desnim i

odabrati opciju Events > Mouse > MouseClicked i u metodu dodati naredni kod jTextField5.setText(listModel.getElementAt(jList1.g etSelectedIndex()).toString());

Page 7: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

7

Zadatak 2. Programirati aplikaciju koji će imati sledeći korisnički interfejs:

− Pritiskom na dugme Obradi se obavljaju sledeće akcije u zavisnosti koje radi dugme je obeleženo:

o Dužina stringa: ispisuje kao rezultat obrade poruku o dužini stringa

o Ispis stringa: ispisuje kao rezultat obrade sam uneti string o Ispis stringa unazad: Ispisuje se uneti string unazad

− Pritiskom na dugme Obriši se briše sadržaj polja za unos i rezultat prethodne obrade − Pritiskom na dugme Izañi se zatvara aplikacija

private void jButton1ActionPerformed(java.awt.ev ent.ActionEvent evt) { String str = jTextField1.getText(); int duzina = str.length(); if (jRadioButton1.isSelected()) { jLabel2.setText(„Duzina je:“ + str.lengt h()); } else if (jRadioButton2.isSelected()) { jLabel2.setText(str); } else { jLabel2.setText(„“); for (int i = 0; i < duzina; i++) { jLabel2.setText(jLabel2.getText()+s tr.charAt(duzina-i-1)); } } }

Page 8: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

8

Zadatak 3. Programirati aplikaciju koji će imati sledeći korisnički interfejs:

Aplikacija treba da u donjem delu ispisuje unetu rečenicu velikim ili malim slovima u zavisnosti da li je jCheckBox selectovan ili ne private void jCheckBox1ActionPerformed(java.awt .event.ActionEvent evt) { String str = jTextField1.getText(); if (jCheckBox1.isSelected()) { jLabel1.setText(str.toUpperCase()); } else { jLabel1.setText(str.toLowerCase()); } }

Page 9: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

9

2. čas Postavljanje naslova u jPanel-u

1. Postaviti jPanel na formu 2. u Properties odabrati polje Border i zatim Titled Border, i uneti naslov panela u polje

Title Postavljanje radio dugmadi

1. Na formu postaviti jednu Button Group komponentu (biće vidljiva samo u Inspector-u) 2. Zatim na formu postaviti potreban broj Radio Button komponenti 3. Za svaku od Radio Button komponenti odabrati u prozoru properties opciju ButtonGroup i

u njoj selektovati Button Group kojem želimo da pripadaju Neke dodatne opcije prozora Properties za postavljenu forme

1. Željeni naslov forme se unosi u opciji Title 2. U polju Bounds se definišu koordinate početne pozicije prozora 3. Opcijom Resizable se definiše da li je prozor promenjive ili fiksne veličine

Neke dodatne opcije prozora Properties za ostale komponente

1. U polje toolTipText se unosi tekst koji se pojavljuje kada se miš nadnese nad komponentu Komponente menija

1. U cilju formiranja glavnog menija aplikacije se mogu koristiti sledeće komponenete: a. Menu Bar (1) b. Menu (2) c. Menu Item (3) d. Menu Item/CheckBox (4) e. Menu Item/RadioButton (5) f. Separator (6)

2. Komponentama Menu Item se najčešće dodaju dogañaji koji su ranije prikazani npr. za dugmad

(1)

(2)

(3)

(4)

(6)

Page 10: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

10

Zadatak 4. Kreirati formu sa sledećim glavnim menijem:

Pokretanje novih prozora unutar aplikacije

1. Kliknuti desnim na naziv projekta i odabrati New>Jdialog Form… 2. Odabrati naziv novog dialoga i postaviti ga u isti paket kao i osnovnu formu:

3. Izdizajnirati dialog po potrebi 4. Dodati dogañaj na neki od Menu Item-a iz glavnog menija osnovne forme (desni klik na

odgovarajući Menu Item i odabir opcije: Events>Action>actionPerformed)

Page 11: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

11

5. Kopirati deo sadržaja main metoda novog dialoga (crveni kod) u metodu koja obrañuje dogañaj tog Menu Item-a. Metoda bi izgleda slično ovom:

private void jMenuItem1ActionPerformed(java.awt.eve nt.ActionEvent evt) { NewJDialog1 dialog = new NewJDialog1(new j avax.swing.JFrame(), true); dialog.setVisible(true); }

Dodavanje opcija Combo Box-u (isto u jListi)

1. Postaviti Combo box na formu 2. U prozoru Properties u polju model uneti željene opcije

Pokretanje programa van NetBeans-a

1. Odabrati opciju Run > Clean and Build Main Project Pokrenuti jar fajl u dist direktorijumu projekta

Page 12: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

12

Kreiranje desktop aplikacije sa konekcijom na bazu Uputstvo za instalaciju MySql-a i kreiranje konekcije Mysql

1. pokrenuti setup.exe i birati sledeće opcije (ako nije drugačije napomenuto prihvatiti default opcije):

a. Complete instalaciju b. Install opciju c. Skip Sign-up opciju d. Configure the MySQL server now opciju e. Finish opciju f. Standard configuration opciju g. Install as Windows Service opciju h. Include Bin Directory in Windows PATH opciju i. Modify Security setting opciju i uneti novu lozinku dva puta j. Execute opciju

2. Kopirati sa CD-a direktorijum lab_db_48 u direktorijum C:\Program Files\MySQL\MySQL Server 5.0\data

Netbeans 6.5

1. Instalirati netbeans-6.5-ml-java-windows. 2. Pokrenuti NetBeans, u kartici services otvoriti opciju Databases pa zatim Drivers i na

polje MySQL (connector-J driver) kliknuti desnim i odabrati Connect Using… i ispuniti formu:

a. Host: localhost b. Port: 3306 c. Database: lab_db_48 d. Username: root e. Password: uneti ranije unetu lozinku pri instalaciji mySql-a

Page 13: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

13

5. Pojavljuje se čvor sa detaljima konekcije:

6. Desnim klikom na naziv tabele i odabrirom opcije View Data se lista sadržaj tabele

Page 14: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

14

Kreiranje aplikacije uz pomoć postojećih tabela Slede koraci za kreiranje aplikacije:

1. Odabrati opciju File > New Project u NetBeans-u i zatim sledeće opcije:

2. U Name and Location koraku odabrati sledeće opcije:

Page 15: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

15

3. U Master Table koraku odabrati sledeće opcije

4. U Detail Options koraku klinuti Finish. 5. Sistem tada kreira osnovni korisnički interfejs sa tabelom i konekcijom na bazu.

Postavljanje dodatnih kontrola na aplikaciju 1. Ispod polja za unos lokacije dodati dve oznake (jLabel) i po jedan jSlider i jCheckBox kao

na slici:

Page 16: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

16

2. Kliknuti desnim na Slider i odabrati Bind > value i odabrati sledeće opcije:

Page 17: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

17

3. Isto uraditi i za jLabel2 ali sa opcijom Bind > Text 4. Kliknuti desnim na Check Box i odabrati Bind > value i odabrati sledeće opcije:

5. U opciji Properties za Slider komponentu postaviti Minimalnu i Maximalnu vrednost na 4000 i 4050, tim redom

6. Pokretanjem programa se dobija sledeća forma:

Page 18: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

18

Kreiranje aplikacije sa novom bazom podataka

1. Ponoviti prve korake za Kreiranja korisničkog interfejsa desktop aplikacije sve do kreiranja početnog okvira

2. Kreirati novu bazu odabirom sledeće opcije:

3. Uneti naziv nove baze

4. Kreirati nove tabele

Page 19: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

19

5. definisati potrebne kolone

6. i uneti odgovarajuće podatke

Page 20: Primena integrisanih razvojnih alata - vezbe GUI i baze ...2 3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva , otvara se prozor za dizajn forme i odgovaraju ća paleta

20

7. U main metodi potrebno je definisati i otvoriti konekciju: try{ Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/Projekat","ro ot","root"); stmt = conn.createStatement(); }catch(Exception ex){ ex.printStackTrace(); }

8. Definisati potrebne promenjive i dodati odgovarajuće import-e: public static Connection conn; public static Statement stmt; public static ResultSet rezultati; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;

9. Ako, na primer, želimo da popunimo combo box sa imenima igraca potrebno je postaviti na formu jComboBox

10. definisati metodu puniCombo(): public void puniCombo(){ ResultSet rez; String sql="SELECT ime, prezime FROM projekat.ra dnik ORDER BY prezime"; try{ rez=stmt.executeQuery(sql); while (rez.next()) { jComboBox1.addItem(rez.getString("ime")+" " +rez.getString("prezime")); } }catch(Exception ex){ ex.printStackTrace(); } };

11. i postaviti poziv metode: puniCombo() u konstruktor metodi 12. Za izračunavanje proseka plata i njegovo ispisivanje u jLabel komponenti može se

napisati sledeća metoda: public void izracunajProsek(){ ResultSet rez; String sql="SELECT avg(plata) FROM projekat.radn ik"; try{ rez=stmt.executeQuery(sql); while (rez.next()) { Float pom = rez.getFloat("avg(plata)"); jLabel1.setText("Prosecna plata iznosi: "+St ring.valueOf(pom)+" din."); } }catch(Exception ex){ ex.printStackTrace(); } }