You are on page 1of 25

Prof.

dr Sinia Mini
Asistent: Munir Zahirovi
Objektno orijentisano
programiranje



(vjebe)
4

Asistent
Mr. Munir Zahirovi



Da se prisjetimo
Proli put smo vidjeli kako se pravi program koji
uitava podatke sa tasture, obrauje ih i daje nam
konaan rezultat.

Takoe smo vidjeli primjer nasljeivanja klasa.

Ovom prilikom vidjet emo kako se koriste
inkrament i dekrament, primjer nekoliko petlji i na
kraju kako se pravi jednostavan kalkulator koji
moe vriti osnovne raunske operacije.

Dekrament
Dekrament je operator koji slui za umanjenje.
Napravit emo jednostavnu klasu koju emo nazvati Dekrament i
unijeti sljedei kod:

public class Dekrament {
public static void main(String[] args) {
for (int i = 10; i>0; i--) {
System.out.println(i);
}
}
}

Unijet emo vrijednost za i = 10, a zatim emo taj broj umanjivati za
1 sve dok ne doemo do vrijednosti i koja je vea od nule.

Pitanje
Moramo li ba unijeti slovo i ili moe i neko drugo, npr.
a?
Probajmo. Unesimo sljedei kod:
public class Dekrament {
public static void main(String[] args) {
for (int a = 10; a>0; a--) {
System.out.println(a);
} } }
Zamijenili smo varijablu i sa varijablom a. I ta
se desilo? Radi li program? A ta ako
unesemo naziv varijable broj i sl.? Probajmo.
Inkrament
Operator inkrament slui za poveanje
vrijednosti za jedan. Napravimo klasu
Inkrament i unesimo sljedei kod:

public class Inkrament {
public static void main(String[] args) {
for (int i = 1; i<10; i++) {
System.out.println(i);
} } }


Pitanje
Moemo li umjesto i unijeti neki drugi
naziv za varijablu?

Zadatak: ta e se desiti ako umjesto
i<10, unesemo i<=10?

Pitanje: ta e se desiti ako umjesto int
i=1; i<10; i++, unesemo: int i=1; i>10;
i++ ?
For petlja
Kad smo ve spominjali inkrament i
dekrament, onda nam nee biti teko da
razumijemo sljedei primjer:

public class ForPetlja {
public static void main (String args[]) {
int i;
for (i = 0; i < 5; i=i+1) {
System.out.println(i);
}
for (int x = 10; x < 15; x++) {
System.out.println(x);
} } }
While petlja
Ovaj zadatak moemo uraditi i na sljedei
nain koristei while pelju:

public class WhilePetlja {
public static void main (String args[]) {
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
int x = 10;
while (x < 15) {
System.out.println(x);
x++;
} } }
Kalkulator
Da bismo napravili jedan krajnje
jednostavan kalkulator u Javi, trebat e
nam vie koda nego to smo do sada
koristili.
Na samom poetku kreirat emo novi
projekat i klasu Kalkulator.
Kada smo to uradili, bie potrebno da
uvedemo (importujemo) i odreene
biblioteke koje e nam omoguiti rad
programa, a to su:
Kalkulator
package digitron;

import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.Container;
Kalkulator
Nakon toga, unosimo sljedee:
public class Kalkulator implements
ActionListener{
JFrame guiFrame;
JPanel buttonPanel;
JTextField numberCalc;
int calcOperation = 0;
int currentCalc;
public static void main(String[] args) {
Kalkulator
EventQueue.invokeLater(new
Runnable()
{

public void run()
{
new Kalkulator();
}
});
}
Kalkulator
public Kalkulator()
{
guiFrame = new JFrame();
guiFrame.setDefaultCloseOperation(JFrame.E
XIT_ON_CLOSE);
guiFrame.setTitle(Digitron");
guiFrame.setSize(450,450);
Kalkulator

guiFrame.setLocationRelativeTo(null);
numberCalc = new JTextField();
numberCalc.setHorizontalAlignment(JTextField.RIGH
T);
numberCalc.setEditable(false);
guiFrame.add(numberCalc, BorderLayout.NORTH);
buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(4,3));
guiFrame.add(buttonPanel,
BorderLayout.CENTER);

Kalkulator
for (int i=1;i<10;i++)
{
addButton(buttonPanel, String.valueOf(i));
}

JButton addButton = new JButton("+");
addButton.setActionCommand("+");

OperatorAction subAction = new OperatorAction(1);
addButton.addActionListener(subAction);

JButton subButton = new JButton("-");
subButton.setActionCommand("-");
Kalkulator
OperatorAction addAction = new
OperatorAction(2);
subButton.addActionListener(addAction);

JButton equalsButton = new
JButton("=");
equalsButton.setActionCommand("=");
equalsButton.addActionListener(new
ActionListener()
{
Kalkulator

public void actionPerformed(ActionEvent event)
{
if (!numberCalc.getText().isEmpty())
{
int number =
Integer.parseInt(numberCalc.getText());
if (calcOperation == 1)
{
int calculate = currentCalc + number;

numberCalc.setText(Integer.toString(calculate));
}
Kalkulator

else if (calcOperation == 2)
{
int calculate = currentCalc -
number;

numberCalc.setText(Integer.toString(calcul
ate));
}
}
}
});
Kalkulator

buttonPanel.add(addButton);

buttonPanel.add(subButton);

buttonPanel.add(equalsButto
n);
guiFrame.setVisible(true);
}
Kalkulator

private void addButton(Container
parent, String name)
{
JButton but = new JButton(name);
but.setActionCommand(name);
but.addActionListener(this);
parent.add(but);
}
Kalkulator

public void actionPerformed(ActionEvent
event)
{
//get the Action Command text from the
button
String action =
event.getActionCommand();
//set the text using the Action
Command text
numberCalc.setText(action);
}
Kalkulator

private class OperatorAction implements ActionListener
{
private int operator;
public OperatorAction(int operation)
{
operator = operation;
}
public void actionPerformed(ActionEvent event)
{
currentCalc = Integer.parseInt(numberCalc.getText());
calcOperation = operator;
} } }
Kalkulator


Hvala na panji i


Sretno!

You might also like