Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
public class Projekat extends JFrame implements ActionListener,ItemListener
{
private JLabel naslovJedan;
private JMenu meni;
private JMenu meniDrugi;
private JMenuItem racunaj;
private JMenuItem izlaz;
private JMenuItem autor;
private JMenuBar meniBar;
private JPanel glavniPanel;
private JPanel glavniPanelDva;
private JPanel panelJedan;
private JPanel panelDva;
private JPanel panelTri;
private Checkbox radio1;
private Checkbox radio2;
private Checkbox radio3;
private Checkbox radio4;
private Checkbox radio5;
private JTextField poljeJedan;
private JTextField poljeDva;
private JTextField poljeTri;
private JTextField poljeCetiri;
private JTextField poljeRezultat;
private JLabel labelaKamata;
private JLabel labelaKoliko;
private JLabel labelaStopa;
private JLabel labelaGodina;
private JLabel labelaRezultat;
private JButton dugmeRacunaj;
private JButton dugmeNazad;
public double zeljeniIznos;
public double brojUkamGod;
public double stopaPrinosa;
public double brojGodina;
public double rezultat;
public Projekat()
{
super("Projektni zadatak");
this.setSize(400,300);
//centriranje pocetnog prozora
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = this.getSize();
if (frameSize.height > screenSize.height)
{
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width)
{
frameSize.width = screenSize.width;
}
this.setLocation( (screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
//kraj centriranja
meni = new JMenu("Izbor");
meniDrugi = new JMenu("Nesto o..");
racunaj = new JMenuItem("Zadatak");
izlaz = new JMenuItem("Izlaz");
autor = new JMenuItem("Autor");
//opis zadatka na prvom prozoru
glavniPanel = new JPanel();
getContentPane().add(glavniPanel);
glavniPanel.setLayout(new BoxLayout(glavniPanel, BoxLayout.Y_AXIS));
//naslovJedan = new JLabel("Jos nista niste izabrali!!!!");
glavniPanel.add(new JLabel(" "));
glavniPanel.add(new JLabel(" "));
glavniPanel.add(new JLabel(" "));
glavniPanel.add(new JLabel(" "));
glavniPanel.add(new JLabel(" ZADATAK:"));
glavniPanel.add(new JLabel(" Napisati program koji ce racunati vrednost pocetne investicije koja ce u "));
glavniPanel.add(new JLabel(" buducnosti imati zadanu vrednost (primer: stedite za fakultetsku godinu "));
glavniPanel.add(new JLabel(" i znate da ce vam za 5 godina trebati 1 milion dinara, koliko novca treba "));
glavniPanel.add(new JLabel(" da ulozite uz kamatu od 7% da bi ste ostvarili cilj) po sledecoj formuli: "));
glavniPanel.add(new JLabel(" Poc investicija=zeljeniIznos/(((stopaPrinosa/brojUkamGod)+1)^stepen) "));
glavniPanel.add(new JLabel(" stepen=brojUkamGod*brojgodina "));
glavniPanel.add(new JLabel(" brojUkamGod - koliko se godisnje racuna kamata "));
//kraj opisa
meniBar = new JMenuBar();
this.setJMenuBar(meniBar);
meniBar.add(meni);
meniBar.add(meniDrugi);
meni.add(racunaj);
meni.add(izlaz);
meniDrugi.add(autor);
racunaj.addActionListener(this);
izlaz.addActionListener(this);
autor.addActionListener(this);
}
public Projekat(String p)
{
super ("Zadatak");
this.setSize(350,450);
//centriranje pocetnog prozora
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = this.getSize();
if (frameSize.height > screenSize.height)
{
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width)
{
frameSize.width = screenSize.width;
}
this.setLocation( (screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
//kraj centriranja
glavniPanelDva = new JPanel();
panelJedan = new JPanel();
panelDva = new JPanel();
panelTri = new JPanel();
naslovJedan = new JLabel(" Unesi iznos koji ti je potreban: ");
getContentPane().add(glavniPanelDva);
glavniPanelDva.setLayout(new BoxLayout(glavniPanelDva, BoxLayout.Y_AXIS));
panelJedan.setLayout(new BoxLayout(panelJedan, BoxLayout.X_AXIS));
panelDva.setLayout(new BoxLayout(panelDva, BoxLayout.Y_AXIS));
panelTri.setLayout(new BoxLayout(panelTri, BoxLayout.Y_AXIS));
poljeJedan = new JTextField();
poljeJedan.setPreferredSize(new Dimension (200,20));
poljeJedan.setMaximumSize(new Dimension (200,20));
poljeDva.setPreferredSize(new Dimension (100,20));
poljeDva.setMaximumSize(new Dimension (100,20));
panelJedan.add(naslovJedan);
panelJedan.add(poljeJedan);
glavniPanelDva.add(panelJedan);
CheckboxGroup cbg = new CheckboxGroup();
radio1 = new Checkbox(" Svaki mesec 12x:", cbg, false);
radio2 = new Checkbox(" Svaki kvartal 4x:", cbg, false);
radio3 = new Checkbox(" Polugodisnje 2x", cbg, false);
radio4 = new Checkbox(" Godisnje 1x:", cbg, false);
radio5 = new Checkbox(" Neki drugi tip obracuna kamate",cbg, false);
labelaKoliko = new JLabel ("Koliko se puta kamata obracunava godisnje: ");
labelaKamata = new JLabel("Unesi koliko se puta kamata obracunava godisnje: ");
poljeTri = new JTextField();
poljeTri.setPreferredSize(new Dimension (100,20));
poljeTri.setMaximumSize(new Dimension (100,20));
panelDva.add(new JLabel(" "));
panelDva.add(labelaKoliko);
panelDva.add(radio1);
panelDva.add(radio2);
panelDva.add(radio3);
panelDva.add(radio4);
panelDva.add(radio5);
panelDva.add(labelaKamata);
panelDva.add(poljeDva);
glavniPanelDva.add(panelDva);
poljeCetiri = new JTextField();
poljeRezultat = new JTextField(); //polje za rezultat
poljeCetiri.setPreferredSize(new Dimension (100,20));
poljeCetiri.setMaximumSize(new Dimension (100,20));
poljeRezultat.setPreferredSize(new Dimension (100,20));
poljeRezultat.setMaximumSize(new Dimension (200,20));
labelaGodina = new JLabel("Koliko godina zelis da stedis? :");
labelaRezultat = new JLabel("REZULTAT tj pocetna investicija:");
labelaStopa= new JLabel("Kolika je kamata u %: ");
dugmeRacunaj = new JButton ("Racunaj");
dugmeNazad = new JButton ("Nazad");
panelTri.add(new JLabel(" "));
panelTri.add(labelaStopa);
panelTri.add(poljeTri);
panelTri.add(new JLabel(" "));
panelTri.add(labelaGodina);
panelTri.add(poljeCetiri);
panelTri.add(new JLabel(" "));
panelTri.add(dugmeRacunaj);
panelTri.add(new JLabel(" "));
panelTri.add(labelaRezultat);
panelTri.add(poljeRezultat);
panelTri.add(new JLabel(" "));
panelTri.add(dugmeNazad);
glavniPanelDva.add(panelTri);
poljeDva.setVisible(false);
labelaKamata.setVisible(false);
//dodati za pracenje dogadjaja
dugmeRacunaj.addActionListener(this);
dugmeNazad.addActionListener(this);
radio1.addItemListener(this);
radio2.addItemListener(this);
radio3.addItemListener(this);
radio4.addItemListener(this);
radio5.addItemListener(this);
}
public void itemStateChanged (ItemEvent e)
{
if (e.getSource().equals(radio1))
{
poljeDva.setVisible(false);
labelaKamata.setVisible(false);
brojUkamGod = 12;
}
if (e.getSource().equals(radio2))
{
poljeDva.setVisible(false);
labelaKamata.setVisible(false);
brojUkamGod = 4;
}
if (e.getSource().equals(radio3))
{
poljeDva.setVisible(false);
labelaKamata.setVisible(false);
brojUkamGod = 2;
}
if (e.getSource().equals(radio4))
{
poljeDva.setVisible(false);
labelaKamata.setVisible(false);
brojUkamGod = 1;
}
if (e.getSource().equals(radio5))
{
poljeDva.setVisible(true);
labelaKamata.setVisible(true);
brojUkamGod=Double.parseDouble(poljeDva.getText());
}
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource().equals(dugmeNazad))
{
//nazad na glavni prozor
this.dispose();
}
if (e.getSource().equals(dugmeRacunaj))
{
//napisati kod za rezultat
poljeRezultat.setText(Double.toString(brojUkamGod));
//JOptionPane.showMessageDialog(null, "REZULTAT");
}
if(e.getSource().equals(racunaj))
{
//drugi prozor
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Projekat prozorDva = new Projekat("Zadatak");
prozorDva.setVisible(true);
}
if(e.getSource().equals(izlaz))
{
int pitanje = JOptionPane.showConfirmDialog(null, "Da li zelite napustiti program?",
"Izlaz", JOptionPane.OK_CANCEL_OPTION);
if (pitanje == JOptionPane.YES_OPTION)
{
JOptionPane.showMessageDialog(null, "Bye Bye, Have a nice Day!!");
this.dispose();
System.exit(0);
}
else
{
JOptionPane.showMessageDialog(null, "Prekinuto");
}
}
if (e.getSource().equals(autor))
{
JOptionPane.showMessageDialog(null,"Created by ....");
}
}
public static void main(String[] args) throws Exception
{
//windows izgled
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
Projekat prozor = new Projekat();
prozor.setVisible(true);
WindowListener listener = new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
};
prozor.addWindowListener(listener);
}
}
imam mali problem koji ne znam kako resiti a on se sastoji u sledecem:
kada selektujem radio button 1-4 onda mi u rezultat ispise dobro tj vrednost koju treba ali ako selektujem radio5 (neki drugi tip obracuna kamate) da mi otvori novo polje za unos, polje se otvori ali ne prenese dobru vrednost nego je stavi 0.0 kako sam i definisao
Code:
poljeDva = new JTextField("0.0");
ako ne stavim ovde neku vrednost onda mi javi gresku.... dobru vrednost mi upise tek kad odradim sledece, chekiram radio5 upisem vrednost pa cekiram neko drugo dugme i vratim na radio 5 onda upise dobru vrednost... gde gresim??