domenica 18 aprile 2010

classe anonima:

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class ClasseAnonima {
JFrame f=new JFrame("Es. classe anonima");
JButton b1=new JButton("Leggi");
JTextArea t1=new JTextArea();
public ClasseAnonima(){
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(300,300);
f.add(BorderLayout.CENTER,t1);
f.add(BorderLayout.SOUTH,b1);
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String t2;
t2=t1.getText();
System.out.println("Il testo digitato è: "+t2);
}
});
}
public static void main(String [] Args){
ClasseAnonima c=new ClasseAnonima();
}
}

Esercizio sulla classe anonima:

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class ClasseAnonima {
JFrame f=new JFrame("Es. classe anonima");
JButton b1=new JButton("Leggi");
JTextArea t1=new JTextArea();
public ClasseAnonima(){
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(300,300);
f.add(BorderLayout.CENTER,t1);
f.add(BorderLayout.SOUTH,b1);
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String t2;
t2=t1.getText();
System.out.println("Il testo digitato è: "+t2);
}
});
}
public static void main(String [] Args){
ClasseAnonima c=new ClasseAnonima();

}
}


Senza titolo

mercoledì 14 aprile 2010

// importo le librerie per utilizzare i loro metodi
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.util.*;
//definisco la classe cliente
public class Client {
//definisco un "carrello" dove raccolgo i dati di nome lettore
BufferedReader lettore;
//creo il collegamento nella rete definendo una "presa" sock
Socket sock;
// scrivere stringhe di carattere
PrintWriter scrittore;
//definisco la grafica e lo scorrimento
JTextField t1=new JTextField(20);
JTextArea a1=new JTextArea(20,50);
JScrollPane scrollPane;
//creo la finestra
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));
scrollPane =new JScrollPane(a1);
p1.add(scrollPane,BorderLayout.CENTER);
p1.add(t1);
p1.add(b1);
b1.addActionListener(new InviaMessaggio());
f1.add(p1);
f1.setSize(500,500);
f1.setVisible(true);
// per ogni cliente si crea un thread-programmazione in parallelo
Thread tt=new Thread(new InArrivoDalServer());
creaCollegamento();
tt.start();
}
//creo una classe interna che ereditano i metodi di ActionListener
public class InviaMessaggio implements ActionListener{
public void actionPerformed(ActionEvent e){
//per le istruzioni a rischio usiamo la try-catch
try{
scrittore.write(t1.getText());
scrittore.println(t1.getText());
//riazzero il metodo
scrittore.flush();
}catch(Exception ex){ex.printStackTrace();}
t1.setText("");
}
}
//creo il collegamento all'interno della try-catch
public void creaCollegamento(){
try{
//creo un collegamento socket con il server
sock=new Socket("192.168.3.18",4242);
//creo un raccoglitore BufferedReader,
//faccio un InputStreamReader collegato all'InputStream di basso livello del socket
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();
}
}
}
//mando tutto in esecuzione tramite la main
public static void main(String[]args){
Client cc=new Client();
cc.finestra();
}
}



// importo le librerie per utilizzare i loro metodi
import java.io.*;
import java.net.*;
import java.util.*;
//definisco la classe ServerSemplice
public class ServerSemplice {
//creo uno stream che che scriva stringhe di caratteri,
//poichè nella rete viaggiano i byte
PrintWriter[] clienti=new PrintWriter[20];
public class ElaboraCliente implements Runnable{
BufferedReader lettore=null;
//definisco la presa "sock"
Socket sock=null;
//creo lo Stream di input
public ElaboraCliente(Socket c){
//inserisco la try-catch
try{
sock=c;
//creo un raccoglitore BufferedReader,
//faccio un InputStreamReader collegato all'InputStream di basso livello del socket
lettore=new BufferedReader(new InputStreamReader(sock.getInputStream()));
}catch(Exception ex){
ex.printStackTrace();
}
}
//iterazione continua che legge dal cliente e rispedisce i messaggi a tutti
@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();
}
}
}
//riceve i messaggi
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 ricevero 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();
}
}
//per inviare i messaggi
public void chiacchierone(String messaggio){
for(int i=0;i<20;i++){
if(clienti[i]!=null){
try{
//array di oggetti
clienti[i].println(messaggio);
//per riazzerare il metodo
clienti[i].flush();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
}
//spedisco il tutto nella main
public static void main(String args[]){
ServerSemplice s=new ServerSemplice();
s.go();
}
}

lunedì 12 aprile 2010

Abbiamo pensato di creare una chat tra gli alunni della classe, e il professore, aggiungendo poi anche la grafica in modo da poter rendere il programma creatato simile a quelli tradizionali.



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);
JScrollPane scrollPane;
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));
scrollPane =new JScrollPane(a1);
p1.add(scrollPane,BorderLayout.CENTER);
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 svolto
scrittore.flush();
}catch(Exception ex){ex.printStackTrace();}
t1.setText("");
}
}
public void creaCollegamento(){
try{
sock=new Socket("192.168.3.18",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();
}
}



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;
//cosi facendo 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{
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 dei 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 il cliente e ricevo i suoi messaggi
//poi 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();
}
}




Emanuele Vestrelli