domenica 20 febbraio 2011
Lavori in Corso...
Salve a tutti i lettori. Dopo un lungo periodo di non uso di questa pagina e di quuste applicazione si è pensato di spostare gli interessi in anche altri campi più ampi e più approfonditi quali la didattica in generale (su più materie), e dei collegamenti di tema attuali... "WORK IN PROGRESS"
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");
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"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Da decimale a binario"
android:onClick="conv1"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Da binario a decimale"
android:onClick="conv2"
/>
NEL SORGENTE:
package com.me.converti;
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 Conversione 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 conv1=(EditText)findViewById(R.id.c1);
int convUno=Integer.parseInt(conv1.getText().toString());
String binario=Integer.toBinaryString(convUno);
TextView risultato=(TextView)findViewById(R.id.ris);
risultato.setText("Valore Binario= "+binario);
}
public void converti2(View view){
EditText conv2=(EditText)findViewById(R.id.c1);
String convDue=(conv2.getText().toString());
int decimale=Integer.parseInt(convDue, 2);
TextView risultato=(TextView)findViewById(R.id.ris);
risultato.setText("Valore Decimale= "+decimale);
}
}
android:layout_width="fill_parent"
android:layout_height="fill_parent">"
android:layout_height="wrap_content"
android:id="@+id/c1"
/>
android:layout_height="wrap_content"
android:id="@+id/ris"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Da decimale a binario"
android:onClick="conv1"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Da binario a decimale"
android:onClick="conv2"
/>
NEL SORGENTE:
package com.me.converti;
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 Conversione 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 conv1=(EditText)findViewById(R.id.c1);
int convUno=Integer.parseInt(conv1.getText().toString());
String binario=Integer.toBinaryString(convUno);
TextView risultato=(TextView)findViewById(R.id.ris);
risultato.setText("Valore Binario= "+binario);
}
public void converti2(View view){
EditText conv2=(EditText)findViewById(R.id.c1);
String convDue=(conv2.getText().toString());
int decimale=Integer.parseInt(convDue, 2);
TextView risultato=(TextView)findViewById(R.id.ris);
risultato.setText("Valore Decimale= "+decimale);
}
}
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("");
}
}
NELLA MAIN.XML:
android:layout_height="fill_parent"
android:stretchColumns="1"
>
android:layout_width="150px"
android:layout_height="wrap_content"
/>
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("");
}
}

NELLA MAIN.XML:
android:layout_height="fill_parent"
android:stretchColumns="1"
>
android:layout_width="150px"
android:layout_height="wrap_content"
/>
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"
>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="bottone1"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="bottone2"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="bottone3"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
/>
NEL 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 Bottone extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button bottone1=(Button)findViewById(R.id.bottone1);
Button bottone2=(Button)findViewById(R.id.bottone2);
Button bottone3=(Button)findViewById(R.id.bottone3);
bottone1.setOnClickListener(uno);
bottone2.setOnClickListener(due);
bottone3.setOnClickListener(tre);
}
private View.OnClickListener uno=new View.OnClickListener(){
public void onClick(View v){
EditText risposta=(EditText)findViewById(R.id.risposta);
String r1="hai cliccato il bottone1";
risposta.setText(r1);
}
};
private View.OnClickListener due=new View.OnClickListener(){
public void onClick(View v){
EditText risposta=(EditText)findViewById(R.id.risposta);
String r1="hai cliccato il bottone2";
risposta.setText(r1);
}
};
private View.OnClickListener tre=new View.OnClickListener(){
public void onClick(View v){
EditText risposta=(EditText)findViewById(R.id.risposta);
String r1="hai cliccato il bottone3";
risposta.setText(r1);
}
};
}


Ecco la risoluzione dell'esercizio:
NELLA MAIN.XML:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="bottone1"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="bottone2"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="bottone3"
/>
android:layout_height="wrap_content"
android:text=""
/>
NEL 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 Bottone extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button bottone1=(Button)findViewById(R.id.bottone1);
Button bottone2=(Button)findViewById(R.id.bottone2);
Button bottone3=(Button)findViewById(R.id.bottone3);
bottone1.setOnClickListener(uno);
bottone2.setOnClickListener(due);
bottone3.setOnClickListener(tre);
}
private View.OnClickListener uno=new View.OnClickListener(){
public void onClick(View v){
EditText risposta=(EditText)findViewById(R.id.risposta);
String r1="hai cliccato il bottone1";
risposta.setText(r1);
}
};
private View.OnClickListener due=new View.OnClickListener(){
public void onClick(View v){
EditText risposta=(EditText)findViewById(R.id.risposta);
String r1="hai cliccato il bottone2";
risposta.setText(r1);
}
};
private View.OnClickListener tre=new View.OnClickListener(){
public void onClick(View v){
EditText risposta=(EditText)findViewById(R.id.risposta);
String r1="hai cliccato il bottone3";
risposta.setText(r1);
}
};
}


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"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="somma"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
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 Utente extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button somma=(Button)findViewById(R.id.somma);
somma.setOnClickListener(onSave);
}
private View.OnClickListener onSave=new View.OnClickListener(){
public void onClick(View v){
EditText addendo1=(EditText)findViewById(R.id.addendo1);
EditText addendo2=(EditText)findViewById(R.id.addendo2);
EditText risultato=(EditText)findViewById(R.id.risultato);
int a1=Integer.parseInt(addendo1.getText().toString());
int a2=Integer.parseInt(addendo2.getText().toString());
int ris=a1+a2;
String r1=""+ris;
risultato.setText(r1);
}
};
}
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:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_height="wrap_content"
/>
android:layout_height="wrap_content"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="somma"
/>
android:layout_height="wrap_content"
/>
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 Utente extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button somma=(Button)findViewById(R.id.somma);
somma.setOnClickListener(onSave);
}
private View.OnClickListener onSave=new View.OnClickListener(){
public void onClick(View v){
EditText addendo1=(EditText)findViewById(R.id.addendo1);
EditText addendo2=(EditText)findViewById(R.id.addendo2);
EditText risultato=(EditText)findViewById(R.id.risultato);
int a1=Integer.parseInt(addendo1.getText().toString());
int a2=Integer.parseInt(addendo2.getText().toString());
int ris=a1+a2;
String r1=""+ris;
risultato.setText(r1);
}
};
}
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();
}
}
}
- 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"
/>
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:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_height="wrap_content"
android:text="Hello World, Millucci"
/>
android:layout_height="wrap_content"
android:text="Hello World, Scorteccia"
/>
android:layout_height="wrap_content"
android:text="Hello World, Drago"
/>
martedì 4 maggio 2010
Ambiente di sviluppo Android
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;
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();
}
}
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.
//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());
}
}
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();
}
}
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();
}
}
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();
}
}
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();
}
}
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();
}
}
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();
}
}
Iscriviti a:
Post (Atom)




