import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; public class HiirKujundid extends JPanel implements MouseListener, ActionListener{ int abix=-1, abiy; int abi2x=-1, abi2y, r=5; int loendur=0; java.util.List kujundid=new ArrayList(); Kujund valitud=null; JComboBox tyybivalik=new JComboBox(); Hulknurk h=new Hulknurk(); javax.swing.Timer t=new javax.swing.Timer(500, this); public HiirKujundid(){ setLayout(new BorderLayout()); addMouseListener(this); h.lisaJoon(new Joon(10, 10, 10, 60)); h.lisaJoon(new Joon(10, 60, 40, 60)); kujundid.add(h); tyybivalik.addItem("Tavaline joon"); tyybivalik.addItem("Suunaga joon"); tyybivalik.addItem("Kolmnurk"); t.start(); //kujundid.add(new Kolmnurk(10, 10, 50, 10, 30, 60)); add(tyybivalik, BorderLayout.SOUTH); } public void paintComponent(Graphics g){ super.paintComponent(g); for(Kujund k: kujundid){ k.joonista(g); } g.setColor(Color.RED); if(abix>=0){ g.drawOval(abix-r, abiy-r, 2*r, 2*r); } if(abi2x>=0){ g.drawOval(abi2x-r, abi2y-r, 2*r, 2*r); } if(valitud!=null){ valitud.joonista(g); } } public void mousePressed(MouseEvent e){ boolean andmedKoos=false; Kujund valikuabi=null; if(loendur==0){ abix=e.getX(); abiy=e.getY(); for(Kujund k: kujundid){ if(k.kasPihtas(abix, abiy)){ valikuabi=k; } } } if(loendur==1){ if(tyybivalik.getSelectedIndex()==0){ kujundid.add(new Joon(abix, abiy, e.getX(), e.getY())); andmedKoos=true; } if(tyybivalik.getSelectedIndex()==1){ kujundid.add(new SuunagaJoon(abix, abiy, e.getX(), e.getY())); andmedKoos=true; } if(tyybivalik.getSelectedIndex()==2){ abi2x=e.getX(); abi2y=e.getY(); } } if(loendur==2){ if(tyybivalik.getSelectedIndex()==2){ kujundid.add(new Kolmnurk(abix, abiy, abi2x, abi2y, e.getX(), e.getY())); andmedKoos=true; } } if(valikuabi!=null){ if(valitud!=null){ if(valikuabi==valitud){ valitud=null; } else { valitud=valikuabi; } } else { valitud=valikuabi; } andmedKoos=true; } loendur++; //suurendab muutujat ühe võrra if(andmedKoos){ loendur=0; abix=abiy=abi2x=abi2y=-1; } repaint(); } public void mouseReleased(MouseEvent e){} public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void actionPerformed(ActionEvent e){ for(Kujund k: kujundid){ k.liigu(0, 2); } repaint(); } public static void main(String[] arg){ JFrame f=new JFrame("Hiirevajutused"); f.add(new HiirKujundid()); f.setSize(400, 300); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }