vi metto un po' di codice...
oltre a client e server,creo questo panel
e l'idea era fare un diffusore che dovrei fare anche con il broadcast solo che non so come farlocodice:class PaintPanel extends JPanel implements MouseMotionListener, MouseListener { private static Color COLOR_FOREGROUND = LoggedMain.colore_lavagna; private static final Color COLOR_BACKGROUND = Color.white; private static final int SIZE = 300; private int x = 10, y = 10; private String percorso, w_user,titolo; private BufferedImage _bufImage = null; public PaintPanel(String titolo) throws Exception{ setPreferredSize(new Dimension(SIZE, SIZE)); setBackground(Color.WHITE); addMouseMotionListener(this); addMouseListener(this); this.titolo = titolo; Diffusore d = new Diffusore(this); StringTokenizer stk = new StringTokenizer(titolo,"_"); w_user = stk.nextToken(); // seleziono il nome dell'utente che gestisce la lavagna } public void paintComponent(Graphics g) { super.paintComponents(g); Graphics2D g2 = (Graphics2D) g; if (_bufImage == null) { int w = this.getWidth(); int h = this.getHeight(); _bufImage = (BufferedImage) this.createImage(w, h); Graphics2D gc = _bufImage.createGraphics(); gc.setColor(COLOR_BACKGROUND); gc.fillRect(0, 0, w, h); } g2.drawImage(_bufImage, null, 0, 0); } private void drawCurrentShape(Graphics2D g2) { g2.setColor(COLOR_FOREGROUND); g2.drawLine(x, y, x, y); } public void mouseDragged(MouseEvent e) { x = e.getX(); y = e.getY(); drawCurrentShape(_bufImage.createGraphics()); percorso = percorso.concat(String.valueOf(x).concat(",") // creo il percorso del tratto .concat(String.valueOf(y)).concat(";")); repaint(); } public void mousePressed(MouseEvent e) { x = e.getX(); y = e.getY(); percorso = String.valueOf(x).concat(",").concat(String.valueOf(y)) .concat(";"); } public void mouseMoved(MouseEvent e) { } public void mouseClicked(MouseEvent arg0) { } public void mouseEntered(MouseEvent arg0) { } public void mouseExited(MouseEvent arg0) { } public void mouseReleased(MouseEvent e) { percorso = percorso.substring(0, percorso.length() - 1); //quando rilascio il mouse,inserisco Stub.out.println("insert_way " + percorso +" "+ w_user +" "+ titolo); //il tratto nella tabella System.out.println(percorso); //dei tratti comunicando questo compito al server Stub.out.println("diffondi "+percorso+" "+w_user+" "+COLOR_FOREGROUND); System.out.println(w_user); System.out.println(titolo); } }
codice:public class Diffusore extends Thread { boolean first = true; PaintPanel pp; public Diffusore(PaintPanel paintpanel) throws Exception { pp=paintpanel; this.start(); } public void run() { while(true){ try { System.out.println("avvio "+pp); String s = Stub.in.readLine(); StringTokenizer stk = new StringTokenizer(s," "); String cmd = stk.nextToken(); String percorso = stk.nextToken(); String user= stk.nextToken(); String colore= stk.nextToken(); if(cmd.equals("diff")){ System.out.println("diffusore "+percorso); } } catch (Exception e) { } } } }

Rispondi quotando