Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package gui;
- import geometrija.Krug;
- import geometrija.Kvadrat;
- import geometrija.Linija;
- import geometrija.Oblik;
- import geometrija.Pravougaonik;
- import geometrija.Tacka;
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.EventQueue;
- import java.awt.Graphics;
- import java.awt.GridBagConstraints;
- import java.awt.GridBagLayout;
- import java.awt.Insets;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import java.io.PrintStream;
- import java.util.ArrayList;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.JTextField;
- import javax.swing.border.EmptyBorder;
- public class Paint
- extends JFrame
- implements ActionListener
- {
- int pozicija = -1;
- int x;
- int y;
- int x1;
- int y1;
- int klik = 0;
- String nazivAlata = "Selekt ";
- public static final int xOfset = 125;
- public static final int yOfset = 62;
- boolean klik1 = true;
- ArrayList<Oblik> listaOblik = new ArrayList();
- private JPanel contentPane;
- public static void main(String[] args)
- {
- EventQueue.invokeLater(new Runnable()
- {
- public void run()
- {
- try
- {
- Paint frame = new Paint();
- frame.setVisible(true);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- });
- }
- public Paint()
- {
- setDefaultCloseOperation(3);
- setBounds(100, 100, 450, 300);
- this.contentPane = new JPanel();
- this.contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
- setContentPane(this.contentPane);
- this.contentPane.setLayout(new BorderLayout(0, 0));
- JPanel pnlOpcije = new JPanel();
- this.contentPane.add(pnlOpcije, "West");
- GridBagLayout gbl_pnlOpcije = new GridBagLayout();
- gbl_pnlOpcije.columnWidths = new int[] { 61 };
- gbl_pnlOpcije.rowHeights = new int[] { 23 };
- gbl_pnlOpcije.columnWeights = new double[] { 1.0D, Double.MIN_VALUE };
- gbl_pnlOpcije.rowWeights = new double[] { 0.0D, 0.0D, 0.0D, 0.0D, 0.0D, Double.MIN_VALUE };
- pnlOpcije.setLayout(gbl_pnlOpcije);
- JButton btnTacka = new JButton("Tacka");
- btnTacka.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent arg0)
- {
- Paint.this.klik = 1;
- }
- });
- GridBagConstraints gbc_btnTacka = new GridBagConstraints();
- gbc_btnTacka.fill = 2;
- gbc_btnTacka.insets = new Insets(0, 0, 5, 0);
- gbc_btnTacka.anchor = 11;
- gbc_btnTacka.gridx = 0;
- gbc_btnTacka.gridy = 0;
- pnlOpcije.add(btnTacka, gbc_btnTacka);
- JButton btnLinija = new JButton("Linija");
- btnLinija.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- Paint.this.klik = 2;
- }
- });
- GridBagConstraints gbc_btnLinija = new GridBagConstraints();
- gbc_btnLinija.fill = 2;
- gbc_btnLinija.insets = new Insets(0, 0, 5, 0);
- gbc_btnLinija.gridx = 0;
- gbc_btnLinija.gridy = 1;
- pnlOpcije.add(btnLinija, gbc_btnLinija);
- JButton btnKrug = new JButton("Krug");
- btnKrug.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent arg0)
- {
- Paint.this.klik = 3;
- }
- });
- GridBagConstraints gbc_btnKrug = new GridBagConstraints();
- gbc_btnKrug.fill = 2;
- gbc_btnKrug.insets = new Insets(0, 0, 5, 0);
- gbc_btnKrug.gridx = 0;
- gbc_btnKrug.gridy = 2;
- pnlOpcije.add(btnKrug, gbc_btnKrug);
- JButton btnKvadrat = new JButton("Kvadrat");
- btnKvadrat.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- Paint.this.klik = 4;
- }
- });
- GridBagConstraints gbc_btnKvadrat = new GridBagConstraints();
- gbc_btnKvadrat.fill = 2;
- gbc_btnKvadrat.insets = new Insets(0, 0, 5, 0);
- gbc_btnKvadrat.gridx = 0;
- gbc_btnKvadrat.gridy = 3;
- pnlOpcije.add(btnKvadrat, gbc_btnKvadrat);
- JButton btnPravougaonik = new JButton("Pravougaonik");
- btnPravougaonik.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- Paint.this.klik = 5;
- }
- });
- GridBagConstraints gbc_btnPravougaonik = new GridBagConstraints();
- gbc_btnPravougaonik.gridx = 0;
- gbc_btnPravougaonik.gridy = 4;
- pnlOpcije.add(btnPravougaonik, gbc_btnPravougaonik);
- JPanel pnlRadnaPovrsia = new JPanel();
- this.contentPane.add(pnlRadnaPovrsia, "Center");
- pnlRadnaPovrsia.setLayout(new BorderLayout(0, 0));
- JPanel panel = new JPanel();
- panel.addMouseListener(new MouseAdapter()
- {
- public void mouseClicked(MouseEvent e)
- {
- if ((Paint.this.klik == 2) && (Paint.this.klik1))
- {
- Paint.this.x1 = e.getX();
- Paint.this.y1 = e.getY();
- Paint.this.klik1 = false;
- }
- else
- {
- Paint.this.klik1 = true;
- Paint.this.x = e.getX();
- Paint.this.y = e.getY();
- Paint.this.repaint();
- }
- System.out.println(Paint.this.x + " " + Paint.this.y);
- }
- });
- panel.setBackground(Color.WHITE);
- pnlRadnaPovrsia.add(panel);
- JPanel pnlIzmena = new JPanel();
- this.contentPane.add(pnlIzmena, "North");
- GridBagLayout gbl_pnlIzmena = new GridBagLayout();
- gbl_pnlIzmena.columnWidths = new int[] { 181, 0, 61 };
- gbl_pnlIzmena.rowHeights = new int[] { 23 };
- gbl_pnlIzmena.columnWeights = new double[] { 0.0D, 1.0D, 0.0D, 0.0D, 0.0D, Double.MIN_VALUE };
- gbl_pnlIzmena.rowWeights = new double[] { 1.0D, Double.MIN_VALUE };
- pnlIzmena.setLayout(gbl_pnlIzmena);
- JButton btnSelekt = new JButton("Selekt");
- btnSelekt.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent arg0)
- {
- Paint.this.klik = 0;
- }
- });
- JLabel lblAlat = new JLabel("Trenutno koristite:");
- GridBagConstraints gbc_lblAlat = new GridBagConstraints();
- gbc_lblAlat.insets = new Insets(0, 0, 0, 5);
- gbc_lblAlat.gridx = 0;
- gbc_lblAlat.gridy = 0;
- pnlIzmena.add(lblAlat, gbc_lblAlat);
- JButton btnIzmena = new JButton("Izmena");
- btnIzmena.addActionListener(this);
- JLabel lblIzabraniAlat = new JLabel(this.nazivAlata);
- GridBagConstraints gbc_lblIzabraniAlat = new GridBagConstraints();
- gbc_lblIzabraniAlat.gridwidth = 2;
- gbc_lblIzabraniAlat.insets = new Insets(0, 0, 0, 5);
- gbc_lblIzabraniAlat.gridx = 1;
- gbc_lblIzabraniAlat.gridy = 0;
- pnlIzmena.add(lblIzabraniAlat, gbc_lblIzabraniAlat);
- GridBagConstraints gbc_btnIzmena = new GridBagConstraints();
- gbc_btnIzmena.insets = new Insets(0, 0, 0, 5);
- gbc_btnIzmena.gridx = 3;
- gbc_btnIzmena.gridy = 0;
- pnlIzmena.add(btnIzmena, gbc_btnIzmena);
- GridBagConstraints gbc_btnSelekt = new GridBagConstraints();
- gbc_btnSelekt.anchor = 18;
- gbc_btnSelekt.gridx = 4;
- gbc_btnSelekt.gridy = 0;
- pnlIzmena.add(btnSelekt, gbc_btnSelekt);
- }
- public void paint(Graphics g)
- {
- super.paint(g);
- switch (this.klik)
- {
- case 0:
- selektuj(g);
- break;
- case 1:
- tacka();
- this.nazivAlata = "Tacka";
- break;
- case 2:
- linija();
- break;
- case 3:
- krug();
- break;
- case 4:
- kvadrat();
- break;
- case 5:
- pravougaonik();
- }
- crtaj(g);
- }
- public void selektuj(Graphics g)
- {
- int pom = -1;
- for (int i = 0; i < this.listaOblik.size(); i++) {
- if ((((Oblik)this.listaOblik.get(i)).sadrzi(this.x + 125, this.y + 62)) &&
- (pom < i)) {
- pom = i;
- }
- }
- if (pom != -1)
- {
- ((Oblik)this.listaOblik.get(pom)).selektovan(g);
- this.pozicija = pom;
- }
- }
- public void tacka()
- {
- Tacka t = new Tacka();
- t.pomeriNa(this.x + 125, this.y + 62);
- this.listaOblik.add(t);
- this.klik = 0;
- }
- private void linija()
- {
- Linija l = new Linija(new Tacka(this.x1 + 125, this.y1 + 62), new Tacka(this.x + 125, this.y + 62));
- this.listaOblik.add(l);
- this.klik = 0;
- }
- public void krug()
- {
- int r = 0;
- boolean pom;
- do
- {
- pom = false;
- String i = JOptionPane.showInputDialog(null, "Unesite poluprecnik kruga", "Unos", 3);
- if (i == null) {
- break;
- }
- try
- {
- r = Integer.parseInt(i);
- }
- catch (NumberFormatException ex)
- {
- pom = true;
- JOptionPane.showMessageDialog(null, "Greska, potrebno je uneti ceo broj", "Greska", 0);
- }
- } while (pom);
- this.listaOblik.add(new Krug(new Tacka(this.x + 125, this.y + 62), r));
- this.klik = 0;
- }
- private void kvadrat()
- {
- int stranica = 0;
- boolean pom;
- do
- {
- pom = false;
- String i = JOptionPane.showInputDialog(null, "Unesite duzinu stranice", "Unos", 3);
- if (i == null) {
- break;
- }
- try
- {
- stranica = Integer.parseInt(i);
- }
- catch (NumberFormatException ex)
- {
- pom = true;
- JOptionPane.showMessageDialog(null, "Greska, potrebno je uneti ceo broj", "Greska", 0);
- }
- } while (pom);
- this.listaOblik.add(new Kvadrat(new Tacka(this.x + 125, this.y + 62), stranica));
- this.klik = 0;
- }
- private void pravougaonik()
- {
- int sirina = 0;
- int visina = 0;
- JTextField txtSirina = new JTextField();
- Object[] message = {
- "Sirina:", txtSirina,
- "Visina:" };
- boolean unos;
- do
- {
- unos = true;
- String txtVisina = JOptionPane.showInputDialog(null, message, "Dimenzije pravougaonika", 2);
- if (txtVisina == null) {
- break;
- }
- try
- {
- sirina = Integer.parseInt(txtSirina.getText());
- }
- catch (NumberFormatException ex)
- {
- unos = false;
- }
- try
- {
- visina = Integer.parseInt(txtVisina);
- }
- catch (NumberFormatException ex)
- {
- unos = false;
- }
- if (!unos) {
- JOptionPane.showMessageDialog(null, "Greska, potrebno je uneti ceo broj", "Greska", 0);
- }
- } while (!unos);
- if (unos) {
- this.listaOblik.add(new Pravougaonik(new Tacka(this.x + 125, this.y + 62), sirina, visina));
- }
- this.klik = 0;
- }
- public void crtaj(Graphics g)
- {
- for (int i = 0; i < this.listaOblik.size(); i++) {
- ((Oblik)this.listaOblik.get(i)).crtajSe(g);
- }
- }
- public void actionPerformed(ActionEvent e)
- {
- Izmena iz = new Izmena(this.listaOblik.get(this.pozicija));
- iz.setDefaultCloseOperation(2);
- iz.setVisible(true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement