import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.*; import javax.xml.transform.stream.*; import java.io.*; import java.awt.*; import java.awt.event.*; import org.w3c.dom.*; public class XMLJoonis3 extends Frame implements ActionListener, MouseListener, MouseMotionListener{ Button nupp = new Button("Lae"); Button salvesta=new Button("Salvesta"); Button tryki=new Button("Trüki"); Button kustuta=new Button("Kustuta"); String failinimi="joonistusandmed.xml"; Choice kujundivalik=new Choice(); Choice tegevusevalik = new Choice(); Color[] varvid={Color.pink, Color.black, Color.yellow}; String[] varvinimed={"Lilla", "Must", "Kollane"}; Choice varvivalik=new Choice(); Document d; Node juur, kujund, nihutatavKujund; MouseEvent vajutuseKoht; public XMLJoonis3(){ setLayout(new FlowLayout()); add(nupp); add(salvesta); add(tryki); add(kustuta); add(kujundivalik); add(varvivalik); add(tegevusevalik); nupp.addActionListener(this); salvesta.addActionListener(this); tryki.addActionListener(this); kustuta.addActionListener(this); addMouseListener(this); addMouseMotionListener(this); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent evt){ System.exit(0); } }); kujundivalik.add("Joon"); kujundivalik.add("Ristkülik"); for(int i=0; ix2){ int abi=x1; x1=x2; x2=abi; } if(y1>y2){ int abi=y1; y1=y2; y2=abi; } g.drawRect(x1, y1, x2-x1, y2-y1); } } public void mousePressed(MouseEvent e) { if (tegevusevalik.getSelectedIndex() == 0) { if (kujundivalik.getSelectedIndex() == 0) { kujund = d.createElement("joon"); } if (kujundivalik.getSelectedIndex() == 1) { kujund = d.createElement("ristkylik"); } juur.appendChild(kujund); lisaVarv(); lisaPunkt(e.getX(), e.getY()); } if (tegevusevalik.getSelectedIndex() >= 1) { NodeList ristkylikud = ((Element)d.getFirstChild()).getElementsByTagName("ristkylik"); for (int i = 0; i < ristkylikud.getLength(); i++) { NodeList punktid = ristkylikud.item(i).getChildNodes(); int x1 = Integer.parseInt(punktid.item(1).getFirstChild().getTextContent()); int y1 = Integer.parseInt(punktid.item(1).getFirstChild().getNextSibling().getTextContent()); int x2 = Integer.parseInt(punktid.item(2).getFirstChild().getTextContent()); int y2 = Integer.parseInt(punktid.item(2).getFirstChild().getNextSibling().getTextContent()); if (x1 > x2) { int abi = x1; x1 = x2; x2 = abi; } if (y1 > y2) { int abi = y1; y1 = y2; y2 = abi; } // g.drawRect(x1, y1, x2 - x1, y2 - y1); //Kui vajutati ristküliku sisse if (e.getX() > x1 && e.getX() < x2 && e.getY() > y1 && e.getY() < y2) { Node r = ristkylikud.item(i); //kustutamine if(tegevusevalik.getSelectedIndex()==1){ r.getParentNode().removeChild(r); i--; repaint(); } if(tegevusevalik.getSelectedIndex()==2){ nihutatavKujund=r; vajutuseKoht=e; } } } } } public void mouseDragged(MouseEvent e){ if (tegevusevalik.getSelectedIndex() == 0) { if (kujundivalik.getSelectedIndex() == 0) { lisaPunkt(e.getX(), e.getY()); } } } public void mouseReleased(MouseEvent e) { if (tegevusevalik.getSelectedIndex() == 0) { if (kujundivalik.getSelectedIndex() == 1) { lisaPunkt(e.getX(), e.getY()); } } if(tegevusevalik.getSelectedIndex()==2){ int dx=e.getX()-vajutuseKoht.getX(); int dy=e.getY()-vajutuseKoht.getY(); NodeList xnoded=((Element)nihutatavKujund). getElementsByTagName("x"); NodeList ynoded=((Element)nihutatavKujund). getElementsByTagName("y"); for(int i=0; i