21
1 Primenjeno programiranje - 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:

Vezbe Za Gui

  • Upload
    tomicsm

  • View
    74

  • Download
    6

Embed Size (px)

DESCRIPTION

Korisnicke vezbe za popunjavanje grafickog korisnickog interfejsa u java programskom jeziku. Instalacija operativnih sistema po želji korisnika: Windows 7, Windows 8, Windows XP, Ubuntu sa svim drajverima i osnovnim paketom programa

Citation preview

  • 1

    Primenjeno programiranje - Vebe Java i NetBeans IDE 6.5

    Kreiranje korisnikog interfejsa desktop aplikacije Primer jednostavne aplikacije:

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

    Kao poetak izgradnje interfejsa potrebno je kreirati jedan kontejner koji e sadrati elemente koje nameravamo da dodamo na interfejs, Kreiramo JFrame kontejner:

    1. Odabrati opciju New > JFrame Form

    2. Dati naziv formi i definisati paket:

  • 2

    3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva, otvara se prozor za dizajn forme i odgovarajua 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:

  • 3

    Dodavanje funkcije dugmadima

    1. Desnim klikom na dugme Izai 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 Brii kod zameniti sa:

    jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText("");

    4. ovaj kod brie sadraj tri polja. 5. Za dugme Saberi na isti nain 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

  • 4

    3. Rezultat izvoenja 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:

  • 5

  • 6

    Zadatak 1. Programirati aplikaciju koji e imati sledei korisniki interfejs:

    Pritiskom na dugme Obradi se obavljaju sledee akcije u zavisnosti koje radi dugme je obeleeno:

    o Duina stringa: ispisuje kao rezultat obrade poruku o duini stringa

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

    Pritiskom na dugme Obrii se brie sadraj polja za unos i rezultat prethodne obrade Pritiskom na dugme Izai se zatvara aplikacija

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { String str = jTextField1.getText(); int duzina = str.length(); if (jRadioButton1.isSelected()) { jLabel2.setText("Duzina je:" + str.length()); } else if (jRadioButton2.isSelected()) { jLabel2.setText(str); } else { jLabel2.setText(""); for (int i = 0; i < duzina; i++) { jLabel2.setText(jLabel2.getText()+str.charAt(duzina-i-1)); } } }

  • 7

    Zadatak 2. Programirati aplikaciju koji e imati sledei korisniki interfejs:

    Aplikacija treba da u donjem delu ispisuje unetu reenicu 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()); } }

  • 8

    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 (bie 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 definiu koordinate poetne pozicije prozora 3. Opcijom Resizable se definie da li je prozor promenjive ili fiksne veliine

    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 sledee 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 najee dodaju dogaaji koji su ranije prikazani npr. za dugmad

    (1)

    (2)

    (3)

    (4)

    (6)

  • 9

    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 dogaaj na neki od Menu Item-a iz glavnog menija osnovne forme (desni klik na

    odgovarajui Menu Item i odabir opcije: Events>Action>actionPerformed) 5. Kopirati deo sadraja main metoda novog dialoga (crveni kod) u metodu koja obrauje

    dogaaj tog Menu Item-a. Metoda bi izgleda slino ovom:

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

    NewJDialog1 dialog = new NewJDialog1(new javax.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 2. Pokrenuti jar fajl u dist direktorijumu projekta

  • 10

    Zadatak 3. Programirati aplikaciju koja e sadrati formu kao na slici:

    U Combo box-u definisati sledee opcije:

    Dodavanje funkcija komponenti jList 1. Dodavanje elemenata u listu. Dodati naredni kod koji kreira model koji e omoguavati

    unos elemenata u listu (postavlja se u konstruktor metodu):

    DefaultListModel listModel = new DefaultListModel(); jList1.setModel(model);

    2. Za dugme Dodaj odabrati opciju Events>Action>actionPerformed i u metodu za obradu izuzetka dodati sledei kod:

  • 11

    String str = jTextField5.getText(); model.addElement(str);

    3. Brisanje lemenata iz liste. Za dugme izbaci dodati metodu za obradu izuzetka sa sledeim kodom:

    int rdbroj = jList1.getSelectedIndex(); if (rdbroj == -1) { jLabel7.setText("MOrate selektovati neku stavku"); } else { model.removeElementAt(rdbroj); jLabel7.setText(""); }

    4. Postavljanje sadraja 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.getSelectedIndex()).toString());

    ili: int broj = jList1.getSelectedIndex();

    String str = model.getElementAt(broj).toString(); jTextField5.setText(str);

    5. Izmena sadraja elemenata iz liste se radi sa narednim kodom dodeljenom dugmetu izmeni

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { String str = jTextField5.getText(); int broj = jList1.getSelectedIndex(); model.removeElementAt(broj); model.add(broj, str); }

  • 12

    Kreiranje desktop aplikacije sa konekcijom na bazu

    Uputstvo za instalaciju MySql-a i kreiranje konekcije

    Mysql 1. pokrenuti setup.exe i birati sledee opcije (ako nije drugaije 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

  • 13

    6. Pojavljuje se vor sa detaljima konekcije:

    7. Desnim klikom na naziv tabele i odabrirom opcije View Data se lista sadraj tabele

  • 14

    Kreiranje aplikacije uz pomo postojeih tabela Slede koraci za kreiranje aplikacije:

    1. Odabrati opciju File > New Project u NetBeans-u i zatim sledee opcije:

    2. U Name and Location koraku odabrati sledee opcije:

  • 15

    3. U Master Table koraku odabrati sledee opcije

    4. U Detail Options koraku klinuti Finish. 5. Sistem tada kreira osnovni korisniki 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:

  • 16

    2. Kliknuti desnim na Slider i odabrati Bind > value i odabrati sledee opcije:

  • 17

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

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

    6. Pokretanjem programa se dobija sledea forma:

  • 18

    Kreiranje aplikacije sa novom bazom podataka

    1. Ponoviti prve korake za Kreiranja korisnikog interfejsa desktop aplikacije sve do kreiranja poetnog okvira

    2. Kreirati novu bazu odabirom sledee opcije:

    3. Uneti naziv nove baze

    4. Kreirati nove tabele

  • 19

    5. definisati potrebne kolone

    6. i uneti odgovarajue podatke

  • 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","root","root"); stmt = conn.createStatement(); }catch(Exception ex){ ex.printStackTrace(); }

    8. Definisati potrebne promenjive i dodati odgovarajue 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.radnik 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 izraunavanje proseka plata i njegovo ispisivanje u jLabel komponenti moe se

    napisati sledea metoda:

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

  • 21

    13. Izmena irine kolona u jTable

    TableColumn kolone=null; kolone = jTable1.getColumnModel().getColumn(1); kolone.setPreferredWidth(150); kolone = jTable1.getColumnModel().getColumn(2); kolone.setPreferredWidth(150);