mercoledì 14 aprile 2010

giovedì 11 marzo 2010

Client.java

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.util.*;
public class Client {
BufferedReader lettore;
Socket sock;
PrintWriter scrittore;
JTextField t1=new JTextField(20);
JTextArea a1=new JTextArea(20,50);
public void finestra(){
JFrame f1=new JFrame("semplice chat");
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p1=new JPanel();
JButton b1=new JButton("invia il messaggio");
p1.setLayout(new GridLayout(3,1));
p1.add(a1);
p1.add(t1);
p1.add(b1);
b1.addActionListener(new InviaMessaggio());
f1.add(p1);
f1.setSize(500,500);
f1.setVisible(true);
Thread tt=new Thread(new InArrivoDalServer());
creaCollegamento();
tt.start();
}
public class InviaMessaggio implements ActionListener{
public void actionPerformed(ActionEvent e){
try{
scrittore.write(t1.getText());
scrittore.println(t1.getText());
//per riazzerare il metodo
scrittore.flush();
}catch(Exception ex){ex.printStackTrace();}
t1.setText("");
}
}
public void creaCollegamento(){
try{
sock=new Socket("192.168.3.25",4242);
lettore= new BufferedReader(new InputStreamReader(sock.getInputStream()));
scrittore= new PrintWriter(sock.getOutputStream());
System.out.println("collegamento stabilito");
}catch(Exception ex){
ex.printStackTrace();
}
}
public class InArrivoDalServer implements Runnable{
public void run(){
String messaggio;
try{
while((messaggio=lettore.readLine())!= null){
a1.setText(messaggio);
System.out.println("leggo il messaggio:"+messaggio);
}
}catch(Exception ex){
ex.printStackTrace();
}
}
}
public static void main(String[]args){
Client cc=new Client();
cc.finestra();
}
}

Server semplice

import java.io.*;
import java.net.*;
import java.util.*;
public class ServerSemplice {
PrintWriter[] clienti=new PrintWriter[20];
public class ElaboraCliente implements Runnable{
BufferedReader lettore=null;
Socket sock=null;
//creo lo Stream di input
public ElaboraCliente(Socket c){
try{
sock=c;
lettore=new BufferedReader(new InputStreamReader(sock.getInputStream()));
}catch(Exception ex){
ex.printStackTrace();
}
}
@Override public void run(){
String messaggio;
try{
while((messaggio=lettore.readLine())!=null){
System.out.println("ho letto: "+messaggio);
InetAddress indirizzo=sock.getInetAddress();
String ind=indirizzo.toString();
String m=ind+" "+messaggio;
chiacchierone(messaggio);
}
}catch(Exception ex){
ex.printStackTrace();
}
}
}
public void go(){
try{
//portone di ascolto
ServerSocket portone=new ServerSocket(4242);
int i=0;
while(true){
//creo il collegamento con il cliente che ha bussato al portone
Socket portina=portone.accept();
//creo lo stream per scrivere i messaggi al cliente
PrintWriter scrittore=new PrintWriter(portina.getOutputStream());
//salvo in un array questo stream di output
clienti[i]=scrittore;
i++;
//........
//creo uno stream di input per quel cliente e mi metto a ricevere i suoi messaggi
//spedisco il messaggio ricevuto a tutti i client
Thread t=new Thread(new ElaboraCliente(portina));
t.start();
}
}catch(Exception ex){
ex.printStackTrace();
}
}
public void chiacchierone(String messaggio){
for(int i=0;i<20;i++){
if(clienti[i]!=null){
try{
clienti[i].println(messaggio);
clienti[i].flush();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
}
public static void main(String args[]){
ServerSemplice s=new ServerSemplice();
s.go();
}
}

mercoledì 3 febbraio 2010

Rappresentazione degli assi cartesiani-esercizio svolto in classe

public class Retta4 extends JPanel {
int x1=0;
int y1=32;
int x2=10;
int y2= 50;
int x0=50;
int y0=100;
public void paintComponent(Graphics g){
x2=this.getWidth();
y2=(int) 1.8*x2+32;
y0=getHeight()-50;
g.setColor(Color.RED);
g.drawLine(x1,y1,x2,y2);
g.setColor(Color.BLUE);
g.drawLine(x0,y0,this.getWidth()-10,y0);
g.drawLine(x0, y0, x0, 50);
g.setColor(Color.GREEN);
g.drawLine(x0,32+y0,x2+x0,+y0-y2);
}
}


import java.awt.*;
import javax.swing.*;
public class TestaRetta {
public static void main(String[]args){
JFrame f1=new JFrame("testa retta 4");
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Retta4 r1=new Retta4();
f1.add(r1,BorderLayout.CENTER);
f1.setSize(500,500);
f1.setVisible(true);
}
}

Disegno di un cerchio

import java.awt.event.*;
import java .awt.*;
import javax.swing.*;
public class TestaCerchio {
public static void main(String Args[]){
Cerchio c1=new Cerchio();
JFrame f1=new JFrame("Cerchio");
f1.setSize(500,500);
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.add(BorderLayout.CENTER,c1);
f1.setVisible(true);
}
}

import java.awt.event.*;
import java .awt.*;
import javax.swing.*;
public class Cerchio extends JPanel implements MouseListener {
private int x1;
private int y1;
private int x2;
private int y2;
private double raggio=0;
private int raggioCast=0;
private int conta=0;
public Cerchio(){
addMouseListener(this);
}
@Override public void mouseClicked(MouseEvent e){

}
@Override public void mouseEntered(MouseEvent e){

}
@Override public void mouseExited(MouseEvent e){

}
@Override public void mousePressed(MouseEvent e){
int x=e.getX();
int y=e.getY();
conta++;
if(conta==1){
x1=x;
y1=y;
}
if(conta==2){
x2=x;
y2=y;
double differenza1=x1-x2;
double differenza2=y1-y2;
raggio=Math.sqrt(Math.pow(differenza1,2)+(differenza2));
System.out.println(raggio);
raggioCast=(int)raggio;
System.out.println(raggioCast);
conta=0;
repaint();
}
}
@Override public void mouseReleased(MouseEvent e){

}
@Override public void paintComponent(Graphics g){
g.setColor(Color.BLUE);
g.drawOval(x1, y1, raggioCast, raggioCast);
}
}

Poligono cliccando sui vertici

import java.awt.event.*;
import java .awt.*;
import javax.swing.*;
public class Retta extends JPanel implements MouseListener {
private int x1;
private int y1;
private int x2;
private int y2;
private int conta=0;
private int i=0;
private int[] ascisse=new int[50];
private int[] ordinate=new int[50];
private int numero=5;
public Retta(){
addMouseListener(this);
}
@Override public void mouseClicked(MouseEvent e){

}
@Override public void mouseEntered(MouseEvent e){

}
@Override public void mouseExited(MouseEvent e){

}
@Override public void mousePressed(MouseEvent e){
ascisse[i]=e.getX();
ordinate[i]=e.getY();
i++;
if(i>numero-1){
i=0;
repaint();
}
}
@Override public void mouseReleased(MouseEvent e){
}
@Override public void paintComponent(Graphics g){
int j=0;
g.setColor(Color.red);
for(j=0;j g.drawLine(ascisse[j], ordinate[j], ascisse[j+1], ordinate[j+1]);
}
g.drawLine(ascisse[0], ordinate[0], ascisse[j], ordinate[j]);
}
}



import java.awt.*;
import javax.swing.*;
public class TestaRetta {
public static void main(String Args[]){
Retta r1=new Retta();
JFrame f1=new JFrame("Retta");
f1.setSize(500,500);
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.add(BorderLayout.CENTER,r1);
f1.setVisible(true);
}
}

lunedì 25 gennaio 2010

Mouse.java

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class Retta extends JPanel implements MouseListener{
private int x1;
private int Y1;
private int x2;
private int y2;
private int conta=0;
public void mouseClicked(MouseEvent e){
int x=e.getX();
int y=e.getY();
conta++;
if(conta==1){
x1=x;
y1=y;
}
if(conta==2){
x2=x;
y2=y;
conta=0;
repaint();
}
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
public void paintComponent(Graphics g){
g.drawLine(x1,y1,x2,y2);
}
}