import java.io.*; import java.net.*; import java.util.*; import java.awt.*; import java.awt.event.*; public class Tahvel2 extends Panel{ AndmeHaldus ah; Joonistusala ja; Juhtpaneel jp; public Tahvel2(){ ah=new AndmeHaldus(this); ja=new Joonistusala(this); jp=new Juhtpaneel(this); setLayout(new BorderLayout()); add(jp, BorderLayout.NORTH); add(ja, BorderLayout.CENTER); } public static void main(String[] arg){ Frame f=new Frame("Joonistamine"); f.add(new Tahvel2()); f.setSize(300, 300); f.setVisible(true); } public class AndmeHaldus implements MouseListener, Runnable{ Tahvel2 keskus; PrintWriter vorku; BufferedReader vorgust; int rx, ry, rr=10; int kx, ky; String knimi="nimetu"; public AndmeHaldus(Tahvel2 uuskeskus){ keskus=uuskeskus; try{ Socket sc=new Socket("minitorn.tlu.ee", 3001); vorku=new PrintWriter(sc.getOutputStream(), true); vorgust=new BufferedReader(new InputStreamReader(sc.getInputStream())); new Thread(this).start(); }catch(Exception ex){ex.printStackTrace();} } public void run(){ try{ for(String rida=vorgust.readLine(); rida!=null; rida=vorgust.readLine()){ if(rida.startsWith("ring ")){ try{ StringTokenizer stk=new StringTokenizer(rida); stk.nextToken(); //viskan esimese minema rx=Integer.parseInt(stk.nextToken()); ry=Integer.parseInt(stk.nextToken()); keskus.ja.repaint(); }catch(Exception ex){ ex.printStackTrace(); System.out.println("Vigane rida: "+rida); } } if(rida.startsWith("kasutaja ")){ try{ StringTokenizer stk=new StringTokenizer(rida); stk.nextToken(); //viskan esimese minema kx=Integer.parseInt(stk.nextToken()); ky=Integer.parseInt(stk.nextToken()); knimi=stk.nextToken(); keskus.ja.repaint(); }catch(Exception ex){ ex.printStackTrace(); System.out.println("Vigane rida: "+rida); } } } }catch(Exception ex){ ex.printStackTrace(); } } public void mousePressed(MouseEvent e){ if(keskus.jp.tegevuseValik.getSelectedIndex()==1){ vorku.println("ring "+e.getX()+" "+e.getY()); } if(keskus.jp.tegevuseValik.getSelectedIndex()==0){ vorku.println("kasutaja "+e.getX()+" "+e.getY()+" "+keskus.jp.tfKasutajaNimi.getText()); } } public void mouseReleased(MouseEvent e){} public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} } public class Joonistusala extends Panel{ Tahvel2 keskus; public Joonistusala(Tahvel2 uuskeskus){ keskus=uuskeskus; addMouseListener(keskus.ah); } public void paint(Graphics g){ g.fillOval(keskus.ah.rx-keskus.ah.rr/2, keskus.ah.ry-keskus.ah.rr/2, keskus.ah.rr, keskus.ah.rr); g.drawString(keskus.ah.knimi, keskus.ah.kx, keskus.ah.ky); } } public class Juhtpaneel extends Panel{ Tahvel2 keskus; TextField tfKasutajaNimi=new TextField(); Choice tegevuseValik=new Choice(); public Juhtpaneel(Tahvel2 uuskeskus){ keskus=uuskeskus; setLayout(new GridLayout(1, 2)); add(tfKasutajaNimi); add(tegevuseValik); tegevuseValik.addItem("nimi"); tegevuseValik.addItem("ring"); } } }