Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

FDN Beograd

PROGRAMSKI ALATI

Rešeni zadaci – GUI


kreiranje grafičkog korisničkog
interfejsa

Zadatak 1:
Kreirati novi projekat pod nazivom GUI1, koji ima grafički korisnički interfejs sa jednom
formom – frmGlavna. Aplikacija treba da obezbedi unos podataka o igraču: ime, broj odigranih
utakmica, status registracije i da li je uključen u ekipu. Sve upisane podatke prikazati u
teksturalnoj formi.
Na formi frmGlavna trebalo bi da se nalaze sledeće kontrole: Label, Combo Box, Spinner,
Radio Button, Button Group, Progress Bar, Button i Text Area.
Rešenje:
Stablo foldera pojekta:

PROGRAMSKI ALATI 1 dr Momčilo Ranđelović


Izgled korisničkog interfejsa aplikacije:

Izvorni kod programa


package gui1;

import java.awt.Color;
import javax.swing.plaf.basic.BasicProgressBarUI;

public class frmGlavna extends javax.swing.JFrame {

public frmGlavna()
{
initComponents();
}

@SuppressWarnings("unchecked")

private void jSpinner1StateChanged(javax.swing.event.ChangeEvent evt)


{
// TODO add your handling code here:
// Postavljanje boje trake
jProgressBar1.setUI(new BasicProgressBarUI()
{
protected Color getSelectionForeground()
{
return Color.ORANGE; // Boja trake
}
});

int x =(int)this.jSpinner1.getValue();
this.jProgressBar1.setValue(x);
//jProgressBar1.setStringPainted(true);
// Postavljanje boje napretka
if(x>10)
{
jProgressBar1.setForeground(Color.BLUE);
jProgressBar1.setBackground(Color.GRAY);
}
else
{
jProgressBar1.setForeground(Color.RED);
jProgressBar1.setBackground(Color.WHITE);
}

PROGRAMSKI ALATI 2 dr Momčilo Ranđelović


}

private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt)


{
// TODO add your handling code here:
boolean stanje =this.jToggleButton1.isSelected();
if(stanje)
{
this.jLabel4.setText("ukljuceno");
this.jToggleButton1.setBackground(Color.red);
}
else
{
this.jLabel4.setText("iskljuceno");
this.jToggleButton1.setBackground(Color.green);
}
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)


{
// TODO add your handling code here:
String prikaz ="Od "+(int)this.jSpinner1.getValue() +" kandidata, \n";
String igrac =(String) this.jComboBox1.getSelectedItem();
String status="nedefinisan";
if(this.jRadioButton1.isSelected()) status="retistrovan";
if(this.jRadioButton2.isSelected()) status="nije retistrovan";
if(this.jRadioButton3.isSelected()) status="u procesu registracije";
//int brKandidata =(int)this.jSpinner1.getValue();
String odabran="";
if(this.jToggleButton1.isSelected()) odabran="uključen";
if(!this.jToggleButton1.isSelected()) odabran="isključen";

prikaz += "odabran je igrač: " + igrac+". Igrač je " + status + ". Igrač je " + odabran;
this.jTextPane1.setText(prikaz);

//main metoda – ne menjati ništa...!!!

public static void main(String args[])


{
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new frmGlavna().setVisible(true);
}
});
}

Zadatak 2:
Kreirati projekat sa grafičkim korisničkim interfejsom, pod imenom ListaK3. Glavna forma
korisničkog interfejsa bi trebalo da obezbedi popunjavanje kontrola podacima o građanima:
ime i prezime. Podaci o građaninu se upisuju u listu. Obezbediti da je obavezno upisati i ime i
prezime građanina. Takođe obezbediti da se svi podaci mogu upisivati isključivo korišćenjem
tastature (korišćenjem tastera Tab i definisanem uloge tastera Enter za potvrdu tj. popunjavanje
liste).
Rešenje:

PROGRAMSKI ALATI 3 dr Momčilo Ranđelović


Stablo foldera pojekta:

Izgled korisničkog interfejsa aplikacije:

PROGRAMSKI ALATI 4 dr Momčilo Ranđelović


Za rešenje zadatka primenjujemo kontrole: Label, TextField, Button i List. Da bi obezbedili
upis podataka u listu, importujemo i koristimo klasu DefaultListModel:
DefaultListModel dlm = new DefaultListModel();

Zatim povezujemo DefaultListModel sa našom kontrolom jList1 u konstruktoru klase


frmGlavna:
this.jList1.setModel(dlm);

Da bi taster Enter imao efekat kao da smo pritisli dugme u konstruktoru klase frmGlavna
definišemo:
this.rootPane.setDefaultButton(jButton1);

Izvorni kod programa


package paketGlavni;

import javax.swing.DefaultListModel;
import javax.swing.JOptionPane;

public class frmGlavna extends javax.swing.JFrame


{
DefaultListModel dlm = new DefaultListModel();

public frmGlavna() //konstruktor klase


{
initComponents();
this.jList1.setModel(dlm);
this.rootPane.setDefaultButton(jButton1);
}

@SuppressWarnings("unchecked")

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)


{
// TODO add your handling code here:
if(this.jTextField1.getText().equals("") || this.jTextField2.getText().equals(""))
{
JOptionPane.showMessageDialog(this,"Greska");
}
else
{
String ime, prezime, zajedno;
ime = this.jTextField1.getText();
prezime = this.jTextField2.getText();
zajedno = ime + " " + prezime;
dlm.addElement(zajedno);
this.jTextField1.setText("");
this.jTextField2.setText("");

}
jTextField1.requestFocus();

//main metodu klase ne menjati

public static void main(String args[])


{

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable()

PROGRAMSKI ALATI 5 dr Momčilo Ranđelović


{
public void run()
{
new frmGlavna().setVisible(true);
}
});
}
}

Zadatak 3.
Kreirati aplikaciju za upis podataka o vozilima i vlasnicima vozila. Podaci o vozilu treba da
sadrže marku i boju vozila, a podaci o vlasnicima, njihova imena i prezimena. Aplikacija
sadrži glavni meni. U podmenijima se aktiviraju dijalog forme za upis podataka: posebna
forma za upis podataka o vlasnicima i posebna forma za upis podataka o vozilu. Opcije
podmenija treba da sadrže ikone, a svaka forma u programu treba da ima po jednu sliku. Za
upis podatka koristiti kontrole: Label, TextField, ComboBox, Button.

Rešenje:

Stablo foldera pojekta:

PROGRAMSKI ALATI 6 dr Momčilo Ranđelović


Izgled korisničkog interfejsa aplikacije:
a) frmGlavna:

b) dlgVlasnik

c) dlgVozilo

PROGRAMSKI ALATI 7 dr Momčilo Ranđelović


Izvorni kod programa:

a) frmGlavna FORMA:
package paketSaobracaj;

import javax.swing.DefaultListModel;
import javax.swing.JOptionPane;

public class frmGlavna extends javax.swing.JFrame


{
public static DefaultListModel dlm = new DefaultListModel();
public frmGlavna() //konstruktor
{
initComponents();
this.setLocationRelativeTo(null);
this.jList1.setModel(dlm);

this.jScrollPane1.setBorder(null); //uklanjanje okvira za listu


}

@SuppressWarnings("unchecked")

private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt)


{
// TODO add your handling code here:
dlgUpisVozila prozorVozilo = new dlgUpisVozila(this,true);
prozorVozilo.setVisible(true);
}

private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt)


{
// TODO add your handling code here:
//Dijalog box za potvrdu izlazka iz progama
int izbor = JOptionPane.showConfirmDialog(this, "Da li zaista želite da izađete?","PROVERA
ODLUKE", JOptionPane.YES_NO_OPTION);
if(izbor==JOptionPane.OK_OPTION) this.dispose();
}

PROGRAMSKI ALATI 8 dr Momčilo Ranđelović


private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
dlgVozac vozac = new dlgVozac(this,true);
vozac.setVisible(true);
}

public static void main(String args[])


{
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new frmGlavna().setVisible(true);
}
});
}
}

b) dlgVozac forma:

package paketSaobracaj;

public class dlgVozac extends javax.swing.JDialog


{

public dlgVozac(java.awt.Frame parent, boolean modal)


{
super(parent, modal);
initComponents();
this.setLocationRelativeTo(null);
this.rootPane.setDefaultButton(jButton1);
}

@SuppressWarnings("unchecked")

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)


{
// TODO add your handling code here:
String ime = this.jTextField1.getText();
String prezime = this.jTextField2.getText();
frmGlavna.dlm.addElement(ime + " " + prezime);
this.dispose();
}

public static void main(String args[])


{

/* Create and display the dialog */


java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
dlgVozac dialog = new dlgVozac(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter()
{
@Override
public void windowClosing(java.awt.event.WindowEvent e)
{
System.exit(0);
}
});
dialog.setVisible(true);

PROGRAMSKI ALATI 9 dr Momčilo Ranđelović


}
});
}

c) dlgVozilo forma:
package paketSaobracaj;

import javax.swing.JOptionPane;

public class dlgUpisVozila extends javax.swing.JDialog


{

public dlgUpisVozila(java.awt.Frame parent, boolean modal)


{
super(parent, modal);
initComponents();
this.setLocationRelativeTo(parent);
}

@SuppressWarnings("unchecked")

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)


{
// TODO add your handling code here:
String marka =(String) this.jComboBox1.getSelectedItem();
String boja = (String) this.jComboBox2.getSelectedItem();
String voziloPodaci = marka + " " + boja;
frmGlavna.dlm.addElement(voziloPodaci);
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)


{
// TODO add your handling code here:
int izbor =JOptionPane.showConfirmDialog(this,"Želite li da zatvorite prozor UPIS VOZILA
?\nOdaberite jednuod opicja","IZLAZ IZ PROZORA", JOptionPane.YES_NO_OPTION);
if(izbor==JOptionPane.OK_OPTION) this.dispose();
}

public static void main(String args[])


{
/* Create and display the dialog */
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
dlgUpisVozila dialog = new dlgUpisVozila(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter()
{
@Override
public void windowClosing(java.awt.event.WindowEvent e)
{
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
}

PROGRAMSKI ALATI 10 dr Momčilo Ranđelović

You might also like