lunedì 31 maggio 2010

Come mandare in esecuzione dei metodi

Mandare in esecuzione i seguenti metodi della classe Spiegazione:
1) public Introduzione getIntroduci(Android a){...}
2) public void vicenda(){...}
3) public void Conclusione(String s){...}
4) public Domande[] su Dubbi(Classe c){...}
5) public Risposte[] aiDubbi(Classe c){...}
6) public void fine(){...}


1) Spiegazione s1= new Spiegazione();
Android a1= new Android();
Introduzione i1= s1.getIntroduci("Oggi parleremo del linguaggio Android");

2) Spiegazione s1= new Spiegazione();
s1.vicenda();

3) Spiegazione s1= new Spiegazione();
String s2;
s1.conclusione(s2);

4) Spiegazione s1= new Spiegazione();
Domande[] d1= new Domande[19];
Classe c2=new Classe ("4al");
d1=s1.suDubbi(c2);

5) Spiegazione s1= new Spiegazione();
Risposte[]r1=new Risposte[19];
Classe c2=new Classe("4al");
r1=s1.aiDubbi(c2);

6) Spiegazione s1= new Spiegazione();
s1.fine("Arrivederci ragazzi, ci vediamo");

martedì 25 maggio 2010

Convertitore decimale-binario / binario-decimale

Main.xml:



android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/c1"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/ris"
/>

martedì 18 maggio 2010

Converti temperature

Si trasformi una temperatura da gradi centigradi a fahrenheit e viceversa.


NELLA MAIN.XML:


android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1"
>

android:id="@+id/temperatura1"
android:layout_width="150px"
android:layout_height="wrap_content"
/>



android:id="@+id/temperatura2"
android:layout_width="150px"
android:layout_height="wrap_content"
/>



android:id="@+id/converti1"
android:layout_width="150px"
android:layout_height="wrap_content"
android:onClick="converti1"
android:text="Da centigradi a fahrenheit"
/>
android:id="@+id/converti2"
android:layout_width="150px"
android:layout_height="wrap_content"
android:onClick="converti2"
android:text="Da fahrenheit a centigradi"
/>





NEL SORGENTE:

package com.mio.convertitemperatura;
import android.app.Activity;
import android.os.Bundle;
import android.content.Context;
import android.widget.*;
import android.view.View;
import android.content.Intent;
public class Converti extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void converti1 (View view){
EditText temperatura1=(EditText)findViewById(R.id.temperatura1);
double centigradi=Double.parseDouble(temperatura1.getText().toString());
double temperatura=centigradi*1.8+32;
String risposta=Double.toString(temperatura);
EditText temperatura2=(EditText)findViewById(R.id.temperatura2);
temperatura2.setText(risposta);
temperatura1.setText("");
}
public void converti2 (View view){
EditText temperatura2=(EditText)findViewById(R.id.temperatura2);
double centigradi=Double.parseDouble(temperatura2.getText().toString());
double temperatura=(centigradi-32)/1.8;
String risposta=Double.toString(temperatura);
EditText temperatura1=(EditText)findViewById(R.id.temperatura1);
temperatura1.setText(risposta);
temperatura2.setText("");
}
}



sabato 15 maggio 2010

Verifica 13-5-10 : 2° esercizio

Il secondo esercizio richiedeva di trasformare una velocità da chilometri orari a metri al secondo e viceversa.


NELLA MAIN.XML:


android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1"
>

android:id="@+id/velocita1"
android:layout_width="150px"
android:layout_height="wrap_content"
/>



android:id="@+id/velocita2"
android:layout_width="150px"
android:layout_height="wrap_content"
/>



android:id="@+id/converti1"
android:layout_width="150px"
android:layout_height="wrap_content"
android:onClick="converti1"
android:text="Da km/s a m/s"
/>
android:id="@+id/converti2"
android:layout_width="150px"
android:layout_height="wrap_content"
android:onClick="converti2"
android:text="Da m/sec a km/h"
/>



NEL SORGENTE:

package org.me.convertiVelocita;
import android.app.Activity;
import android.os.Bundle;
import android.content.Context;
import android.widget.*;
import android.view.View;
import android.content.Intent;
public class convertiVelocita extends Activity
{
/** Called when the activity is first created. */
final double a=0.2777;
final double b=3.6;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void converti1 (View view){
EditText velocita1=(EditText)findViewById(R.id.velocita1);
double kmh=Double.parseDouble(velocita1.getText().toString());
double velocita=kmh*a;
String risposta=Double.toString(velocita);
EditText velocita2=(EditText)findViewById(R.id.velocita2);
velocita2.setText(risposta);
velocita1.setText("");
}
public void converti2 (View view){
EditText velocita2=(EditText)findViewById(R.id.velocita2);
double kmh=Double.parseDouble(velocita2.getText().toString());
double velocita=kmh*b;
String risposta=Double.toString(velocita);
EditText velocita1=(EditText)findViewById(R.id.velocita1);
velocita1.setText(risposta);
velocita2.setText("");
}
}




Verifica 13-5-10 : 1° esercizio

La verifica consisteva nel risolvere a scelta un esercizio su due. Il primo chiedeva che al click di uno dei tre bottoni visualizzati comparisse la scritta "hai cliccato il bottone x".
Ecco la risoluzione dell'esercizio:

NELLA MAIN.XML:


android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

martedì 11 maggio 2010

Fare una calcolatrice con android

Si faccia con android una calcolatrice che effettui soltanto l'operazione di somma (risolto).

a)creo il progetto;
b)modifico la main.xml dove aggiungo due EditText,una TextView e un Bottone sommatore.
c)modifico la classe "Calcolatrice1" aggiungendo la gestione del bottone.

Ecco la risoluzione dell'esercizio:


android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>

venerdì 7 maggio 2010

Esercizio da svolgere a casa-android

Punto 1:
- si faccia un nuovo progetto e in seguito modificare la main.xml di "Hello Word" la stringa in modo da avere "Hello Word, Nome".




Punto 2:
- inserire nella main.xml un bottone da nominare "Sono un Bottone".




Punto 3:
- modificare il programma che apre il database cambiando il database e la tabella. Il database chiamarlo "Scuola" e la tabella "Studente".
(P.S.: ad ogni punto è stato compilato il programma scrivendo nel comando DOS "ant install")
Ecco il sorgente:


package com.database.tutorial;
import android.app.Activity;
import android.os.Bundle;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.content.Context;
import android.widget.*;
import android.view.View;
import android.content.Intent;
public class Studenti extends Activity
{
private final String DB_NAME = "Scuola.db";
private SQLiteDatabase database = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
creaDatabase();
creaTabellaStudente();
}
public void creaDatabase(){
try{
database=openOrCreateDatabase(DB_NAME,SQLiteDatabase.CREATE_IF_NECESSARY, null);
} catch (SQLiteException e) {
e.printStackTrace();
}
}
public void creaTabellaStudente(){
try{
if (database.isOpen()){
database.execSQL("CREATE TABLE IF NOT EXISTS studente(_id integer primary key autoincrement, nome char(10), indirizzo e-mail varchar(30)");
}
} catch (SQLiteException e) {
e.printStackTrace();
}
}
}

mercoledì 5 maggio 2010

Inizio di un nuovo progetto con android

Dopo aver mandato in esecuzione android, abbiamo inserito il seguente codice nel comando DOS:

android create project --target 6 --path./voti --activity Studente --package com.database.tutorial


Dopo aver aggiunto nella main.xml altri "TextView" abbiamo mandato in esecuzione ant install e qst è il risultato:




Questo qui di seguito, invece, è il linguaggio in "xml" che abbiamo modificato:


android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World, Millucci"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World, Scorteccia"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World, Drago"
/>

martedì 4 maggio 2010

Ambiente di sviluppo Android

Si apra la bat di android precedentemente creata scrivendo "android":





Si mandi in esecuzione android:





Si lanci android:





Si lanci ant install e poi studente:




sabato 24 aprile 2010

1° convegno nazionale "education 2.0" svoltosi in Firenze

Il convegno trattava tematiche inerenti alla scuola del futuro, quello, in poche parole, che cambierà e deve cambiare nello studio delle materie da parte degli studenti e dei professori stessi per stare alla pare con gli altri paesi europei. Pertanto come rappresentanti dell'ITIS "Alessandro Volta" di Perugia abbiamo esposto i nostri "blog didattici" da noi utilizzati a informatica. La foto che troverete qua sotto è quella dei rappresentanti della nostra scuola (in ordine da sinistra verso destra: Lorenzo Millucci, Silvano Natalizi e Luigi Marzocchella). che potete trovare anche su facebook.


venerdì 16 aprile 2010

Creazione di un database studenti con il DOS

1) vado sulla cartella in C:\sqlite-3_6_20

2)mando in esecuzione sqlite: sqlite3 studenti.db

3)per creare il database:
create table studenti (id int, nome varchar(30),eMail varchar(30), primary key(id));

4)inserisco dei dati:
insert into studenti values (1,"Carlos Bailon","carlos_360@hotmail.it");
insert into studenti values (2,"Andrea Drago","dreix2@hotmail.it");
insert into studenti values (3,"Luigi Marzocchella","luigi.marzocchella@gmail.com");
insert into studenti values (4,"Lorenzo Millucci","lollino360@msn.com");
insert into studenti values (5,"Edoardo Luca roccaforte","edolvk@yahoo.it");

5) per visualizzare il tutto:
select * from studenti;

Classe interna

Creare un programma con una sola finestra, un bottone e una casella di testo con una classe interna. Stampare poi quello che viene scritto nella casella di testo:


import java.awt.event.*;
public class EsSemplice {
JFrame f1=new JFrame("classe interna");
JTextField t1= new JTextField();
JButton b1= new JButton("stampa");
public EsSemplice(){
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.add(BorderLayout.CENTER,t1);
f1.add(BorderLayout.SOUTH,b1);
f1.setSize(200,200);
f1.setVisible(true);
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String t2;
t2=t1.getText();
System.out.println(t2);
}
});
}
public static void main(String[]args){
EsSemplice s1= new EsSemplice();
}
}

Database nel DOS-esercizio svolto in classe

per creare un database attraverso il DOS c'è bisogno di questi piccoli passi:


//andare sulla cartella sqlite e scrivere:
esempio
sqlite3 android.db;

//per creare il database:
create table ristorante (id int, nome varchar(30),indirizzo varchar(30), primary key(id));

// per inserire dei dati: ogni virgola una colonna e le righe ogni volta che aggiungo dei dati
insert into ristorante values (1,"calimero","via pulcino nero n 34");
insert into ristorante values (2,"Osteria del Ghiottone", "via del sorcio morto n 22");

select * from ristorante; //per mostrare tutta la tabella

select * from ristorante where id=1; // per mostrami una riga

//per modificare una riga già inserita nella tabella
update ristorante set indirizzo="via del sorcio vivo n 22" where id=2;

//per cancellare una riga già inserita nella tabella
delete from ristorante where id=1;

NB: terminare i comandi da dare a SQLITE sempre con il punto e virgola.

domenica 11 aprile 2010

Andoid - primo esercizio svolto in classe

Si crei un programma di tipo android che mi indichi l'orario che si ha in quel momento.



package com.natalizi.android.Now;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.util.Date;

public class Now extends Activity implements View.OnClickListener
{
/** Called when the activity is first created. */
Button btn;
@Override
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
btn=new Button(this);
btn.setOnClickListener(this);
updateTime();
setContentView(btn);
}
public void onClick(View view){
updateTime();
}
private void updateTime(){
btn.setText(new Date().toLocaleString());
}

}

mercoledì 24 marzo 2010

Compito in classe del 24-3-10

Si inserisca nella chat client-server semplice il "gioco dell'oca" dove mostrare, nascondere le posizioni nel gioco e a scelta casuale del cliente tramite un tasto si abbia un "cerchietto" in una parte del gioco.


import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
import java.awt.*;
public class Compito extends JPanel{
Color colore1=Color.YELLOW;
Color colore2=Color.RED;
String numero="";
String n="";
int y;
int z;
int[][]coord={{110, 80},{150, 100},{170, 130},{170, 170},{150, 210},{115, 230},
{80, 230},{40, 210},{10, 170},{10, 130},{30, 100},{70,80}};
public void setColore1(Color c1){
colore1=c1;
}

public void setColore2(Color c2){
colore2= c2;
}
public void paintComponent(Graphics g){
g.setColor(colore1);
g.fillOval(0,50,200,200);
g.setColor(colore2);
g.fillOval(50,100,100,100);
g.drawLine(100,250,100,50);
g.drawLine(0,150,200,150);
g.drawLine(10,200,190,100);
g.drawLine(10,100,190,200);
g.drawLine(50,60,150,240);
g.drawLine(50,240,150,60);
int j;
for(int i=0;i<12;i++){
j=i+1;
n=numero+j;
g.drawString(n,coord[i][0],coord[i][1]);
if(i==y){
g.fillOval(coord[i][0]+5,coord[i][1],10,10);
}
if(z==1){
g.fillOval(coord[i][0]+5,coord[i][1],10,10);
}
}
z=0;
g.setColor(colore2);

}
public int getY(int b){
y=b;
System.out.print(b);
return y;
}
public int nascondiPedine(int c){
y=c;
return y;
}
public int mostraPedine(){
z=1;
return z;
}


}



import java.io.*;
import java.net.*;
public class ServerSeplice {
public void go(){
try{
ServerSocket s1=new ServerSocket(12);//mi creo una porta di ascolto
while(true){ //quando qualcuno chiede di entrare creo un collegamento diretto tra server e client
Socket presa=s1.accept(); //il socket è una presa
//trasmissione dei dati al client:
PrintWriter scrivi=new PrintWriter(presa.getOutputStream());//classe che invia i dati nel collegamento virtuale
int s=getSuggerimenti();
scrivi.println(s);//manda nel canale la stringa s
scrivi.close();
System.out.println(s);
}
}
catch(IOException ex){
ex.printStackTrace();
}

}
private int getSuggerimenti(){
double r1=Math.random()*12;
int r=(int)r1;
return r;
}
public static void main(String args[]){
ServerSeplice serv=new ServerSeplice();
serv.go();
}
}



import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
import java.awt.*;
public class TestaCompito {
int y;
BufferedReader lettore;
Socket sock;
PrintWriter scrittore;
JFrame f1=new JFrame("disegno1");
Compito d1=new Compito();
JButton b=new JButton("Ricevi");
JPanel p1=new JPanel();
JButton nascondiPedine=new JButton("Nascondi tutte le pedine");
JButton mostraPedine=new JButton("Mostra tutte le pedine");
JTextField t1;
JTextArea a1;
JScrollPane scrollPane;
public TestaCompito(){
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
d1.setColore1(Color.YELLOW);
d1.setColore2(Color.BLUE);
f1.add(BorderLayout.SOUTH,b);
b.addActionListener(new RiceviMessaggi());
JFrame f1=new JFrame("Chat gioco");
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
a1=new JTextArea(20,50);
t1=new JTextField(200);
JButton b1=new JButton("invia messaggio");
b.addActionListener(new RiceviMessaggi());
nascondiPedine.addActionListener(new NascondiPedine());
p1.setLayout(new GridLayout(4,2));
scrollPane= new JScrollPane(a1);

p1.add(scrollPane, BorderLayout.CENTER);
p1.add(t1);
p1.add(b1);
p1.add(b);
p1.add(nascondiPedine);
p1.add(BorderLayout.SOUTH,d1);
f1.add(p1);
p1.add(mostraPedine);
mostraPedine.addActionListener(new MostraPedine());
f1.pack();
f1.setVisible(true);
}
public class RiceviMessaggi implements ActionListener{
public void actionPerformed(ActionEvent e){
go();
p1.repaint();
}
}
public class NascondiPedine implements ActionListener{
public void actionPerformed(ActionEvent e){
d1.nascondiPedine(33);
p1.repaint();
}
}
public class MostraPedine implements ActionListener{
public void actionPerformed(ActionEvent e){
d1.mostraPedine();
p1.repaint();
}
}

public void go(){
try{
for(int i=0;i<1;i++){
Socket s=new Socket("localhost",12);
InputStreamReader r=new InputStreamReader(s.getInputStream());
BufferedReader reader=new BufferedReader(r);
String suggerimento=reader.readLine();
System.out.println("Suggerimento: "+suggerimento);
y=Integer.parseInt(suggerimento);
d1.getY(y);
reader.close();
}
}catch(IOException ex){
ex.printStackTrace();
}
}
public static void main(String[]args){
TestaCompito d=new TestaCompito();
}
}

lunedì 15 marzo 2010

Grafica in java-esercizio svolto in classe-modifica con aggiunta di "numeri"-risolto problema

Si disegnino due cerchi sovrapposti di diverso colore e dimensione e poi si faccia la costruzione dei diametri del cerchio più ampio.


import javax.swing.*;
import java.awt.*;
public class DueCerchi extends JPanel{
Color colore1=Color.YELLOW;
Color colore2=Color.RED;
public void setColore1(Color c1){
colore1=c1;
}
public void setColore2(Color c2){
colore2= c2;
}
public void paintComponent(Graphics g){
g.setColor(colore1);
g.fillOval(100,150,200,200);
//x1,y1,x2,y2
//(x,y,w,h)
g.setColor(colore2);
g.fillOval(150,200,100,100);
g.drawLine(200,350,200,150);
g.drawLine(100,250,300,250);
g.drawLine(110,300,290,200);
g.drawLine(110,200,290,300);
g.drawLine(150,160,250,340);
g.drawLine(150,340,250,160);
g.drawString("1", 210, 180);
g.drawString("2", 250, 200);
g.drawString("3", 280, 240);
g.drawString("4", 280, 280);
g.drawString("5", 250, 320);
g.drawString("6", 210, 340);
g.drawString("7", 170, 330);
g.drawString("8", 140, 310);
g.drawString("9", 110, 270);
g.drawString("10", 110, 230);
g.drawString("11", 130, 200);
g.drawString("12", 170, 180);
//(x,y,w,h)
g.setColor(colore2);
g.fillOval(150,200,100,100);

}
}



import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TestaDueCerchi {
JFrame f1=new JFrame("disegno1");
DueCerchi d1=new DueCerchi();
public TestaDueCerchi(){
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.add(BorderLayout.CENTER,d1);
d1.setColore1(Color.YELLOW);
d1.setColore2(Color.BLUE);
//sceglie lui le dimensioni più appropiate
f1.setSize(400,600);
f1.setVisible(true);
}
public static void main(String[]args){
TestaDueCerchi d=new TestaDueCerchi();
}
}


domenica 14 marzo 2010

Client-Server: esercizio svolto in classe tempo fa ma includendo la spiegazione delle istruzioni

// 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;
// per 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 con le sue parti
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 utilizzo try-catch
try{
scrittore.write(t1.getText());
scrittore.println(t1.getText());
//per riazzerare il metodo
scrittore.flush();
}catch(Exception ex){ex.printStackTrace();}
t1.setText("");
}
}
//creo il collegamento tutto 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{
//iterazione continua che legge dal cliente e rispedisce a tutti il messaggio
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 è in grado di scrivere 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();
}
}
}
//per 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, collegamento vero
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();
}
}
//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();
}
}
}
}
//mando il tutto nella main
public static void main(String args[]){
ServerSemplice s=new ServerSemplice();
s.go();
}
}

giovedì 11 marzo 2010

Stream con l'aggiunta di grafica

Conseguimento dell'esercizio relativo agli stream precedentemente pubblicato con l'aggiunta della grafica e di alcune piccole modifiche al programma.



import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.io.FileNotFoundException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class LeggiScriviStream {
JFrame f1=new JFrame("Scrivi");
JButton b1= new JButton("scrivi");
JLabel l1=new JLabel("nome");
JTextField t1=new JTextField();
JLabel l2=new JLabel("cognome");
JTextField t2=new JTextField();
JLabel l3=new JLabel("data");
JTextField t3=new JTextField();
JLabel l4=new JLabel("posta elettronica");
JTextField t4=new JTextField();
JLabel l5=new JLabel("telefono");
JTextField t5=new JTextField();
JPanel p1=new JPanel();
public LeggiScriviStream(){
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.setLayout(new GridLayout(11,1));
f1.add(l1);
f1.add(t1);
f1.add(l2);
f1.add(t2);
f1.add(l3);
f1.add(t3);
f1.add(l4);
f1.add(t4);
f1.add(l5);
f1.add(t5);
f1.add(b1);
b1.addActionListener(new Scrivi());
//sceglie lui le dimensioni più appropiate
f1.setSize(400,600);
f1.setVisible(true);

}
class Scrivi implements ActionListener{
public void actionPerformed(ActionEvent e){
try{
writeInfo("rubrica.txt");
}
catch(IOException ioe){
System.out.println("Errore in fase di chiusura dello stream");
System.out.println(ioe.getMessage());
}
}
}
private void writeInfo(String fileName) throws IOException{
FileOutputStream fOut=null;
OutputStreamWriter outStream = null;
BufferedWriter buffWriter=null;
try{
fOut=new FileOutputStream(fileName);
outStream=new OutputStreamWriter(fOut);
buffWriter=new BufferedWriter(outStream);

String nome=null;
String cognome=null;
String data=null;
String postaElettronica=null;
String telefono=null;
nome =t1.getText();
cognome =t2.getText();
data =t3.getText();
postaElettronica=t4.getText();
telefono=t5.getText();
buffWriter.write(nome+";"+cognome+";"+data+";"+postaElettronica+";"+telefono+"\r\n");
//outStream.write(nome+";"+cognome+";"+data+";"+postaElettronica+";"+telefono+"\r\n");
System.out.println(cognome);
}catch(FileNotFoundException fnfe){
System.out.println("Errore nelle crazioni dei flussi di input e/o output di byte da/verso i file");
System.out.println(fnfe.getMessage());
}catch(UnsupportedEncodingException uee){
System.out.println("Codifiche dei flussi di input e/o di output di caratteri errate");
System.out.println(uee.getMessage());
}catch(IOException ioe){
System.out.println("Errore in fase di lettura e/o scrittura di caratteri");
System.out.println(ioe.getMessage());
}
finally{
if(buffWriter !=null){
buffWriter.close();

}
}
}
public static void main(String[]args) throws IOException{
LeggiScriviStream lss1=new LeggiScriviStream();
}
}

martedì 9 marzo 2010

Chat Cliente-Server: fatto in classe

Si è posto di fare una chat tra gli alunni della classe e il professore aggiungendo poi anche la grafica per rendere il programma più simile ai programmi classici di chat.



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
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;
//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 marzo 2010

Esercizio sugli stream-svolto in classe

Data una lista di nome, cognome, data di nascita di alcune persone messe in ordine verticale, posizionarle in modo orizzontale.


//per intercettare il tipo di errore input-output degli stream
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.io.FileNotFoundException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.BufferedReader;
import java.io.BufferedWriter;
public class Stream {
public static void main(String[]args)throws IOException{
/*if(args.length!=4){
System.out.println("Usage: java CambiaFormato ");
System.exit(-1);
}
*/

if(args.length!=4){
String s="Usage:java CambiaFormato ";
throw new IllegalArgumentException(s);
}
FileInputStream FIn=null;
FileOutputStream FOut=null;
InputStreamReader inStream=null;
OutputStreamWriter outStream = null;
BufferedReader buffRead =null;
BufferedWriter buffWriter=null;
// null sta per vuoti
try{
FIn=new FileInputStream(args[0]);
FOut=new FileOutputStream(args[2]);

inStream=new InputStreamReader(FIn,args[1]);
outStream=new OutputStreamWriter(FOut,args[3]);

buffRead= new BufferedReader(inStream);
buffWriter=new BufferedWriter(outStream);
String temp=null; // temp=stringa temporanea-una volta carica il nomr, poi cognome ecc
String nome=null;
String cognome=null;
String data=null;
int count =1; // per contare che riga sto leggendo
while((temp=buffRead.readLine())!= null){
if((count %3)==1)
nome =temp;

else if((count %3)==2)
cognome =temp;

else{
data =temp;
buffWriter.write(nome+";"+cognome+";"+data+"\r\n");
}
count++;
}
System.out.println("Copia effettuata,lette"+(count-1)+"righe");
}catch(FileNotFoundException fnfe){
System.out.println("Errore nelle crazioni dei flussi di input e/o output di byte da/verso i file");
System.out.println(fnfe.getMessage());
}catch(UnsupportedEncodingException uee){
System.out.println("Codifiche dei flussi di input e/o di output di caratteri errate");
System.out.println(uee.getMessage());
}catch(IOException ioe){
System.out.println("Errore in fase di lettura e/o scrittura di caratteri");
System.out.println(ioe.getMessage());
}
finally{
if(buffWriter!=null)
buffWriter.close();
if(buffRead!=null)
buffRead.close();
if(outStream!=null)
outStream.close();
if(buffWriter!=null)
buffWriter.close();
if(buffWriter!=null)
buffWriter.close();
if(buffWriter!=null)
buffWriter.close();
}

}

}

lunedì 8 febbraio 2010

Modulo Applicativo Reti

Si è iniziato il modulo applicativo delle rete definendi alcuni concetti importanti per lo svolgimento di tale argomento. Pertanto si è iniziato a fare degli esercizi riguardanti il Client-Server: al collegamento del cliente al server, verranno inviati casualmente dei messaggi, dei file. E' stata inserita anche la grafica per migliorare l'aspetto dell'arrivo dei messaggi.


import java.io.*;
import java.net.*;
public class Server {
String[] suggerimenti={"studia piu'","e' meglio che esci di casa,pensa alla salute","se non hai dolori accendi un cero alla Madonna"};
public void go(){
try{
ServerSocket s1=new ServerSocket(4242); //indica qual è la porta di comunicazione
while(true){
Socket presa=s1.accept();
PrintWriter scrivi=new PrintWriter(presa.getOutputStream());
String s=getSuggerimenti();
scrivi.println(s);
scrivi.close();
System.out.println(s);
}
}catch(IOException ex){
ex.printStackTrace();
}
}
private String getSuggerimenti(){
int r =(int)(Math.random()*suggerimenti.length);
return suggerimenti [r];
}
public static void main(String[]args){
Server se=new Server();
se.go();
}
}


import java.io.*;
import java.net.*;
public class Cliente {
public void go(){
try{
Socket s = new Socket("192.168.3.17",4242);
InputStreamReader r=new InputStreamReader(s.getInputStream());
BufferedReader reader=new BufferedReader(r);
String suggerimento=reader.readLine();
System.out.println("Suggerimento: "+suggerimento);
reader.close();
}catch(IOException ex){
ex.printStackTrace();
}
}
public static void main(String[]args){
Cliente c=new Cliente();
c.go();
}
}


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
public class Cliente2 {
JFrame f1=new JFrame("Suggerimenti");
JTextArea a1=new JTextArea();
public void go(){
try{
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.add(a1);
f1.setSize(500,500);
f1.setVisible(true);
Socket s = new Socket("192.168.3.17",4242);
InputStreamReader r=new InputStreamReader(s.getInputStream());
BufferedReader reader=new BufferedReader(r);
String suggerimento=reader.readLine();
a1.setText(suggerimento);
System.out.println("Suggerimento: "+suggerimento);
reader.close();
}catch(IOException ex){
ex.printStackTrace();
}
}
public static void main(String[]args){
Cliente2 c=new Cliente2();
c.go();
}
}

mercoledì 3 febbraio 2010

Spostamento di una parola-esercizio in java fatto in classe

Si richede di scrivere una parola e, tramite un tasto, spostarlo in una JLabel

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Visualizza {
JFrame f1=new JFrame("trasferimento");
JTextField t1=new JTextField();
JLabel l1=new JLabel();
JButton b1=new JButton("invio");
public Visualizza(){
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
b1.addActionListener(new Bottone());
f1.add(BorderLayout.NORTH,t1);
f1.add(BorderLayout.CENTER,l1);
f1.add(BorderLayout.SOUTH,b1);
f1.setSize(300,300);
f1.setVisible(true);
}
public class Bottone implements ActionListener{
public void actionPerformed(ActionEvent e){
String parola =t1.getText();
l1.setText(parola);
}
}
public static void main(String[]args){
Visualizza v1=new Visualizza();
}
}

martedì 2 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);
}
}

venerdì 29 gennaio 2010

Verfica del 28-01-2010

L'esercizio consisteva nel convertire valori in Gradi in Fahreneiht ed disegnarne il grafico che ne rappresenta la relazione tra le due misurazioni.


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Verifica2 {
private JFrame f1= new JFrame("Conversione da gradi Celsius a gradi Fahrenheit");
private JTextField t1=new JTextField();
private JLabel g = new JLabel("temperatura in °C:");
private JLabel far = new JLabel("temperatura in °F:");
private JLabel l1 = new JLabel();
private JButton b=new JButton("converti");
private GraficoVerifica c = new GraficoVerifica();
public Verifica2(){
f1.setLayout(new GridLayout(3,2));
f1.add(g);
f1.add(far);
f1.add(l1);
f1.add(t1);
f1.add(l1);
f1.add(b);
f1.add(c);
f1.setVisible(true);
f1.setSize(400,400);
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
b.addActionListener(new Bottone());

}
class Bottone implements ActionListener{
public void actionPerformed(ActionEvent e){
String sGradi=t1.getText();
double gradi = Double.parseDouble(sGradi);
double Farenait = gradi * 1.8 +32;
String converti=Double.toString(Farenait);
l1.setText(converti);
}
}
public static void main(String[]args){
Verifica2 v1 = new Verifica2();
}
}


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class GraficoVerifica extends JPanel {
private int x1=100;
double d= x1 *1.8+32;
private int y1=(int) d;
private int x=0;
private int y=32;
public void paintComponent(Graphics g){
g.setColor(Color.BLUE);
int w=this.getHeight();
g.drawLine(x, y, x1, y1);
}
}

mercoledì 27 gennaio 2010

Costruzione di un cerchio- esercizio per casa

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Cerchio extends JPanel implements MouseListener {
private int x1;
private int y1;
private int x2;
private int y2;
private int raggio2=0;
private double raggio=0;
private int conta =0;
private int numero=2;
int i=0;
public Cerchio(){
addMouseListener(this);
}
public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
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;
int differenza1= x1-x2;
int differenza2= y1-y2;
raggio=Math.sqrt(Math.pow(differenza1,2)+(differenza2));
raggio2 =(int)raggio;
repaint();
}
}
public void mouseReleased(MouseEvent e){}
public void paintComponent(Graphics g){
g.drawOval(x1,y1,raggio2,raggio2);
}
}


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

Costruzione di un poligono-esercizio fatto in classe

Si costruisca un poligono dopo aver fatto dei clicchi con il mouse sulla finestra:


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Segna extends JPanel implements MouseListener {
private int x1;
private int y1;
private int x2;
private int y2;
private int conta =0;
private int numero=5;
private int[] ascisse = new int[numero];
private int[] ordinate=new int[numero];
int i=0;
public Segna(){
addMouseListener(this);
}
public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mousePressed(MouseEvent e){
ascisse[i]= e.getX();
ordinate[i]=e.getY();
i++;
if(i>numero-1){
i=0;
repaint();
}
}
public void mouseReleased(MouseEvent e){}
public void paintComponent(Graphics g){
int i=0;
for(i=0;i g.drawLine(ascisse[i],ordinate[i],ascisse[i+1],ordinate[i+1]);
}
g.drawLine(ascisse[0],ordinate[0],ascisse[i],ordinate[i]);
}
}



import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TestaSegna {
public static void main(String[]args){
JFrame f1 = new JFrame("traccia poligono");
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.setSize(400,400);
Segna m1 = new Segna();
f1.add(m1,BorderLayout.CENTER);
f1.setVisible(true);
}
}

lunedì 25 gennaio 2010

Mouse- esercizio in java fatto in classe

Al click del mouse si memorizzino le cordinate per tracciare una retta fino ad un altro punto fatto con un altrettanto click del mouse


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Mouse extends JPanel implements MouseListener {
private int x1;
private int y1;
private int x2;
private int y2;
private int conta =0;
public Mouse(){
addMouseListener(this);
}
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);
}
}


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TestaMouse {
public static void main(String[]args){
JFrame f1 = new JFrame("traccia retta");
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.setSize(400,400);
Mouse m1 = new Mouse();
f1.add(m1,BorderLayout.CENTER);
f1.setVisible(true);
}
}

domenica 24 gennaio 2010

Disegno di una retta

Data una retta, si clicchi sul pannello per avere un punto e costruire un segmento che vada dalla retta al punto perpendicolarmente

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Retta extends JPanel{
public void paintComponent(Graphics g){
int w= this.getWidth();
g.drawLine(0,100,w,100);
g.drawLine(w/2,50,w/2,50);
g.drawLine(w/2,50,w/2,100);
}

}


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TestaRetta {
public static void main(String[]args){
Retta r1 = new Retta();
JFrame f1= new JFrame("prova retta1");
JButton b1=new JButton("traccia perpendicolare");
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.setSize(500,500);
f1.add(r1);
f1.add(b1,BorderLayout.SOUTH);
f1.setVisible(true);
}

}

giovedì 21 gennaio 2010

Conta

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Conta {
private JFrame f1 = new JFrame("conta delle lettere");
private JFrame f2 = new JFrame("lettere contate");
private JTextField t1 = new JTextField();
private JButton b1 = new JButton("vai");
private JLabel l1 = new JLabel();
public Conta(){
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.setSize(400,400);
f1.add(BorderLayout.NORTH,t1);
f1.add(BorderLayout.SOUTH,b1);
b1.addActionListener(new Leggi());
f1.setVisible(true);
}
public int trova(String s1){
int c=0;
c=s1.length();
return c;
}
class Leggi implements ActionListener{
public void actionPerformed(ActionEvent E){
String testo=t1.getText();
int valore=trova(testo);
String valore2=Integer.toString(valore); //converte i numeri in parole
l1.setText("ci sono: "+valore2+" lettere");
f2.add(BorderLayout.CENTER,l1);
f2.setSize(150,150);
f2.setVisible(true);
f2.repaint();
}
}
public static void main(String[]args){
Conta c1=new Conta();
}
}

Inserimento-esercizio in java

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Inserimento {
private JFrame f1 = new JFrame("Inserimento");
private JButton b1 = new JButton ("invio");
private JTextField t1 = new JTextField();
private JFrame f2 =new JFrame ("Saluti");
private JLabel l1 = new JLabel();
private JLabel l2 = new JLabel();
private JLabel l3 = new JLabel();
public void apriFinestra(){
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.add(BorderLayout.NORTH,t1);
f1.add(BorderLayout.SOUTH,b1);
b1.addActionListener(new Leggi());
f1.setSize(200,200);
f1.setVisible(true);
}
public class Leggi implements ActionListener{
public void actionPerformed(ActionEvent E){
String nome=t1.getText();
l1.setText(nome);
l2.setText("Auguri");
ImageIcon icon = new ImageIcon("C:/Documents and Settings/All Users/Documenti/Immagini/Immagini campione/iverno.jpeg");
l3= new JLabel(icon);
f2.add(BorderLayout.WEST,l3);
f2.add(BorderLayout.CENTER,l1);
f2.setSize(200,200);
f2.setVisible(true);
}
}
public static void main(String[]args){
Inserimento I1= new Inserimento();
I1.apriFinestra();
}
}