Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package app;
- import java.awt.Color;
- import java.awt.EventQueue;
- import java.awt.Font;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.ArrayList;
- import java.util.HashMap;
- import javax.swing.DefaultListModel;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JList;
- import javax.swing.JScrollPane;
- import javax.swing.JTextField;
- import podaci.Baze;
- import podaci.Osoba;
- public class Frame
- {
- private JFrame frmSpisakOsoba;
- private JTextField txtIme;
- private JTextField txtPrezime;
- private JButton btnNapred;
- private JButton btnNovi;
- private JButton btnDodaj;
- private JButton btnIzmeni;
- private JButton btnObrisi;
- private JButton btnOdustani;
- private JButton btnNazad;
- private JTextField txtGodine;
- private JList<String> list;
- private DefaultListModel<String> model;
- private HashMap<Integer, Osoba> mapa;
- private ArrayList<Osoba> osobe;
- private int brojac;
- private boolean provera;
- private void ucitaj()
- {
- HashMap<Integer, Osoba> pom = Baze.iscitaj();
- if(!pom.isEmpty())
- {
- mapa = pom;
- for (HashMap.Entry<Integer, Osoba> par : mapa.entrySet())
- {
- osobe.add(par.getValue());
- }
- }
- }
- public static void main(String[] args)
- {
- EventQueue.invokeLater(new Runnable()
- {
- public void run()
- {
- try
- {
- Frame window = new Frame();
- window.frmSpisakOsoba.setVisible(true);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- });
- }
- public Frame()
- {
- initialize();
- }
- private void initialize()
- {
- frmSpisakOsoba = new JFrame();
- frmSpisakOsoba.setResizable(false);
- frmSpisakOsoba.setTitle("Spisak osoba");
- frmSpisakOsoba.setBounds(100, 100, 636, 380);
- frmSpisakOsoba.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frmSpisakOsoba.getContentPane().setLayout(null);
- osobe = new ArrayList<Osoba>();
- mapa = new HashMap<Integer, Osoba>();
- JLabel lblIme = new JLabel("Ime");
- lblIme.setFont(new Font("Times New Roman", Font.PLAIN, 14));
- lblIme.setBounds(25, 25, 46, 14);
- frmSpisakOsoba.getContentPane().add(lblIme);
- JLabel lblPrezime = new JLabel("Prezime");
- lblPrezime.setFont(new Font("Times New Roman", Font.PLAIN, 14));
- lblPrezime.setBounds(25, 50, 60, 14);
- frmSpisakOsoba.getContentPane().add(lblPrezime);
- JLabel lblDatumRodjenja = new JLabel("Godine starosti");
- lblDatumRodjenja.setFont(new Font("Times New Roman", Font.PLAIN, 14));
- lblDatumRodjenja.setBounds(25, 77, 96, 14);
- frmSpisakOsoba.getContentPane().add(lblDatumRodjenja);
- txtIme = new JTextField();
- txtIme.setEnabled(false);
- txtIme.setDisabledTextColor(Color.BLACK);
- txtIme.setFont(new Font("Times New Roman", Font.PLAIN, 14));
- txtIme.setBounds(147, 22, 110, 20);
- frmSpisakOsoba.getContentPane().add(txtIme);
- txtIme.setColumns(10);
- txtPrezime = new JTextField();
- txtPrezime.setEnabled(false);
- txtPrezime.setDisabledTextColor(Color.BLACK);
- txtPrezime.setFont(new Font("Times New Roman", Font.PLAIN, 14));
- txtPrezime.setColumns(10);
- txtPrezime.setBounds(147, 47, 110, 20);
- frmSpisakOsoba.getContentPane().add(txtPrezime);
- txtGodine = new JTextField();
- txtGodine.setFont(new Font("Times New Roman", Font.PLAIN, 14));
- txtGodine.setEnabled(false);
- txtGodine.setDisabledTextColor(Color.BLACK);
- txtGodine.setColumns(10);
- txtGodine.setBounds(147, 75, 110, 20);
- frmSpisakOsoba.getContentPane().add(txtGodine);
- JScrollPane scrollPane = new JScrollPane();
- scrollPane.setFocusable(false);
- scrollPane.setBounds(10, 211, 600, 129);
- frmSpisakOsoba.getContentPane().add(scrollPane);
- btnNazad = new JButton("Nazad");
- btnNazad.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent arg0)
- {
- if(brojac > 0)
- {
- brojac--;
- txtIme.setText(osobe.get(brojac).getIme());
- txtPrezime.setText(osobe.get(brojac).getPrezime());
- txtGodine.setText(osobe.get(brojac).getGodine() + "");
- list.setSelectedIndex(brojac);
- btnNapred.setEnabled(true);
- if(brojac == 0)
- {
- btnNazad.setEnabled(false);
- }
- if(osobe.size() == 1)
- {
- btnNazad.setEnabled(false);
- }
- }
- else
- {
- btnNapred.setEnabled(false);
- }
- }
- });
- btnNazad.setEnabled(false);
- btnNazad.setBounds(10, 167, 89, 23);
- frmSpisakOsoba.getContentPane().add(btnNazad);
- btnNapred = new JButton("Napred");
- btnNapred.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- if(brojac < osobe.size() - 1)
- {
- brojac++;
- txtIme.setText(osobe.get(brojac).getIme());
- txtPrezime.setText(osobe.get(brojac).getPrezime());
- txtGodine.setText(osobe.get(brojac).getGodine() + "");
- list.setSelectedIndex(brojac);
- btnNazad.setEnabled(true);
- if(brojac == osobe.size() - 1)
- {
- btnNapred.setEnabled(false);
- }
- }
- }
- });
- btnNapred.setBounds(113, 167, 89, 23);
- frmSpisakOsoba.getContentPane().add(btnNapred);
- btnNovi = new JButton("Novi");
- btnNovi.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- btnOdustani.setVisible(true);
- btnOdustani.setEnabled(true);
- btnNovi.setEnabled(false);
- btnDodaj.setEnabled(true);
- txtIme.setEnabled(true);
- txtPrezime.setEnabled(true);
- txtGodine.setEnabled(true);
- txtIme.setText("");
- txtPrezime.setText("");
- txtGodine.setText("");
- }
- });
- btnNovi.setBounds(217, 167, 89, 23);
- frmSpisakOsoba.getContentPane().add(btnNovi);
- btnDodaj = new JButton("Dodaj");
- btnDodaj.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- try
- {
- Osoba novi = new Osoba(txtIme.getText(), txtPrezime.getText(), Integer.parseInt(txtGodine.getText()));
- osobe.add(novi);
- int max = 0;
- for (HashMap.Entry<Integer, Osoba> par : mapa.entrySet())
- {
- if(par.getKey() > max)
- {
- max = par.getKey();
- }
- }
- mapa.put(max + 1, novi);
- Baze.upisi(novi);
- model.removeAllElements();
- upisiUListu();
- list.setSelectedIndex(osobe.size() - 1);
- brojac = osobe.size() - 1;
- btnNazad.setEnabled(true);
- btnNapred.setEnabled(false);
- btnDodaj.setEnabled(false);
- btnOdustani.setEnabled(false);
- btnOdustani.setVisible(false);
- }
- catch(Exception ex)
- {
- btnDodaj.setEnabled(false);
- btnOdustani.setEnabled(false);
- btnOdustani.setVisible(false);
- txtIme.setText(osobe.get(brojac).getIme());
- txtPrezime.setText(osobe.get(brojac).getPrezime());
- txtGodine.setText(osobe.get(brojac).getGodine() + "");
- }
- finally
- {
- txtIme.setEnabled(false);
- txtPrezime.setEnabled(false);
- txtGodine.setEnabled(false);
- }
- btnNovi.setEnabled(true);
- if(!btnIzmeni.isEnabled() && !btnObrisi.isEnabled())
- {
- btnIzmeni.setEnabled(true);
- btnObrisi.setEnabled(true);
- }
- }
- });
- btnDodaj.setEnabled(false);
- btnDodaj.setBounds(316, 167, 89, 23);
- frmSpisakOsoba.getContentPane().add(btnDodaj);
- btnIzmeni = new JButton("Izmeni");
- btnIzmeni.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- try
- {
- if(provera == false)
- {
- txtIme.setEnabled(true);
- txtPrezime.setEnabled(true);
- txtGodine.setEnabled(true);
- provera = true;
- }
- else
- {
- int index = list.getSelectedIndex();
- Osoba novi = new Osoba(txtIme.getText(), txtPrezime.getText(), Integer.parseInt(txtGodine.getText()));
- HashMap.Entry<Integer, Osoba> pom = null;
- for (HashMap.Entry<Integer, Osoba> par : mapa.entrySet())
- {
- if(par.getValue().compareTo(osobe.get(index)) == 1)
- {
- pom = par;
- break;
- }
- }
- if(osobe.get(index).compareTo(novi) != 1)
- {
- osobe.get(index).clone(novi);
- model.removeAllElements();
- upisiUListu();
- mapa.get(pom.getKey()).clone(novi);
- Baze.izmeni(pom);
- }
- brojac = index;
- list.setSelectedIndex(index);
- txtIme.setEnabled(false);
- txtPrezime.setEnabled(false);
- txtGodine.setEnabled(false);
- provera = false;
- }
- }
- catch(Exception ex)
- {
- txtIme.setText(osobe.get(brojac).getIme());
- txtPrezime.setText(osobe.get(brojac).getPrezime());
- txtGodine.setText(osobe.get(brojac).getGodine() + "");
- txtIme.setEnabled(false);
- txtPrezime.setEnabled(false);
- txtGodine.setEnabled(false);
- provera = false;
- }
- }
- });
- btnIzmeni.setBounds(415, 167, 89, 23);
- frmSpisakOsoba.getContentPane().add(btnIzmeni);
- btnObrisi = new JButton("Obrisi");
- btnObrisi.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- int index = list.getSelectedIndex();
- for (HashMap.Entry<Integer, Osoba> par : mapa.entrySet())
- {
- if(par.getValue().compareTo(osobe.get(index)) == 1)
- {
- mapa.remove(par.getKey());
- Baze.obrisi(par);
- break;
- }
- }
- osobe.remove(index);
- model.removeAllElements();
- upisiUListu();
- if(osobe.isEmpty())
- {
- txtIme.setText("");
- txtPrezime.setText("");
- txtGodine.setText("");
- btnObrisi.setEnabled(false);
- btnNapred.setEnabled(false);
- btnIzmeni.setEnabled(false);
- btnNazad.setEnabled(false);
- }
- else
- {
- if(index - 1 == osobe.size() - 1)
- {
- Osoba pom = new Osoba();
- pom.clone(osobe.get(index - 1));
- txtIme.setText(pom.getIme());
- txtPrezime.setText(pom.getPrezime());
- txtGodine.setText(pom.getGodine() + "");
- list.setSelectedIndex(index - 1);
- }
- else
- {
- Osoba pom = new Osoba();
- pom.clone(osobe.get(index));
- txtIme.setText(pom.getIme());
- txtPrezime.setText(pom.getPrezime());
- txtGodine.setText(pom.getGodine() + "");
- list.setSelectedIndex(index);
- }
- if(osobe.size() == 1)
- {
- btnNapred.setEnabled(false);
- btnNazad.setEnabled(false);
- }
- }
- }
- });
- btnObrisi.setBounds(514, 167, 89, 23);
- frmSpisakOsoba.getContentPane().add(btnObrisi);
- btnOdustani = new JButton("Odustani");
- btnOdustani.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- try
- {
- Osoba pom = new Osoba();
- pom.clone(osobe.get(list.getSelectedIndex()));
- txtIme.setText(pom.getIme());
- txtPrezime.setText(pom.getPrezime());
- txtGodine.setText(pom.getGodine() + "");
- txtIme.setEnabled(false);
- txtPrezime.setEnabled(false);
- txtGodine.setEnabled(false);
- btnOdustani.setEnabled(false);
- btnDodaj.setEnabled(false);
- btnOdustani.setVisible(false);
- btnNovi.setEnabled(true);
- }
- catch(Exception ex)
- {
- txtIme.setText("");
- txtPrezime.setText("");
- txtGodine.setText("");
- txtIme.setEnabled(false);
- txtPrezime.setEnabled(false);
- txtGodine.setEnabled(false);
- btnOdustani.setEnabled(false);
- btnDodaj.setEnabled(false);
- btnOdustani.setVisible(false);
- btnNovi.setEnabled(true);
- }
- }
- });
- btnOdustani.setEnabled(false);
- btnOdustani.setVisible(false);
- btnOdustani.setBounds(316, 122, 89, 23);
- frmSpisakOsoba.getContentPane().add(btnOdustani);
- ucitaj();
- model = new DefaultListModel<String>();
- upisiUListu();
- list = new JList<String>(model);
- scrollPane.setColumnHeaderView(list);
- if(!osobe.isEmpty())
- {
- txtIme.setText(osobe.get(0).getIme());
- txtPrezime.setText(osobe.get(0).getPrezime());
- txtGodine.setText(osobe.get(0).getGodine() + "");
- if(osobe.size() == 1)
- {
- btnNapred.setEnabled(false);
- btnNazad.setEnabled(false);
- }
- }
- else
- {
- btnObrisi.setEnabled(false);
- btnNapred.setEnabled(false);
- btnIzmeni.setEnabled(false);
- }
- brojac = 0;
- list.setSelectedIndex(brojac);
- }
- private void upisiUListu()
- {
- for(Osoba i : osobe)
- {
- String linija = String.format("%-32s", i.getIme()) + String.format("%-33s", i.getPrezime()) + String.format("%-32s", i.getGodine());
- model.addElement(linija);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement