martedì 16 dicembre 2008

Albero di Natale (verde=spiegazione passaggi)

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
public class AlberoNatale {
private JFrame albero; //JFrame crea la finestra
private PannelloAlbero a;
private JButton accende;
private JButton spegne; //creo i 2 bottoni...accende e spegne sono i nomi
private JPanel pannelloBottoni=new JPanel(new GridLayout(2,1));
private java.util.Timer pallineAccese;
public AlberoNatale() {
albero=new JFrame("Albero del S. Natale 2008");
albero.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //serve una volta chiusa la finestra a chiudere il programma
albero.setSize(500,500);
a=new PannelloAlbero();
accende=new JButton("Accendi le lampadine");
spegne=new JButton("Spegni le lampadine");
pannelloBottoni.add(accende);
pannelloBottoni.add(spegne);
albero.add(a,BorderLayout.CENTER); //servono per aggiungere i bottoni
albero.add(pannelloBottoni,BorderLayout.SOUTH);
accende.addActionListener(new BottoneAccende());
spegne.addActionListener(new BottoneSpegne());
albero.setVisible(true);
}

public class PannelloAlbero extends JPanel { /*faccio una classe interna*/
public void paintComponent(Graphics g) {
Graphics g2D=(Graphics2D) g;
Image alberoImmagine=new ImageIcon("Albero di Natale.jpg").getImage(); //x mettere immagine
g.drawImage(alberoImmagine,0,0,albero.getWidth(),albero.getHeight(),null); //0,0 stà per l'origine
//getWidth e getHeight servono per adattare l'immagine allo schermo
g.setColor(getColore());
g.fillOval(250,100,30,30);
g.setColor(getColore());
g.fillOval(200,150,30,30);
g.setColor(getColore());
g.fillOval(200,100,30,30);
g.setColor(getColore());
g.fillOval(200,200,30,30);
g.setColor(getColore());
g.fillOval(250,300,30,30); //creo le palline
}
}
private Color getColore () {
int verde=(int) (Math.random()*255);
int rosso=(int) (Math.random()*255);
int blu=(int) (Math.random()*255); //vengono definiti i colori
Color colore=new Color(verde,rosso,blu);
return colore;
} //classe per accendere le palline
public class BottoneAccende implements ActionListener {
public void actionPerformed(ActionEvent event) {
pallineAccese=new java.util.Timer();
pallineAccese.schedule(new TimerTask(){
public void run() {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
albero.repaint();
}
});
}
},0,500); //500 sono millisecondi di intervallo
}
} //classe per spengere le palline
public class BottoneSpegne implements ActionListener{
public void actionPerformed(ActionEvent event) {
pallineAccese.cancel();
}
}
public static void main(String[] args) {
AlberoNatale albero=new AlberoNatale();
}
}

Scelta una immagine da usare come riferimento:

Eseguendo il programma, otterremo una finestra del tipo:

Ovviamente premendo sui bottoni, le palline dell'albero si comporteranno di conseguenza...

sabato 13 dicembre 2008

Finestra cambio colore casuale (verde=spiegazione)

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Grafica1 implements ActionListener {
private JFrame f; //finestra principale
private Pannello1 p; //pannello
private JButton b1; //bottone e il relativo nome
public Grafica1(){
f=new JFrame("prova pannello"); //creo il JFrame
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
/*dimensioni*/f.setSize(300,300);
b1= new JButton("cambia colore in modo casuale");
b1.addActionListener(this);
f.setLayout(new GridLayout(2,1));
p=new Pannello1();
f.add(b1);
f.add(p);
f.setVisible(true);
}
public class Pannello1 extends JPanel {
public void paintComponent(Graphics g) {
Graphics2D g2D=(Graphics2D) g;
int verde=(int) (Math.random()*255);
int rosso=(int) (Math.random()*255);
int blu=(int) (Math.random()*255);
Color colore=new Color(rosso,verde,blu);
g2D.setColor(colore);
g2D.fillOval(0,0,70,70); /*che riempe l'ovale*/
} //chiuso metodo
} //chiuso classe
public static void main(String[] args){
Grafica1 g1= new Grafica1(); //eseguo il metodo costruttore
}
}

Il risultato finale sarà una finestra di questo tipo e premendo il bottone, per l'appunto, si cambia il colore della finestra in modo casuale:


martedì 9 dicembre 2008

Creazione calcolatrice

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Finestra2 implements ActionListener{
JLabel l1=new JLabel("primo numero");
JLabel l2=new JLabel("secondo numero");
JTextField t1=new JTextField();
JTextField t2=new JTextField();
JButton b1=new JButton("+");
JTextField risultato=new JTextField();
public void creaForm1(){
JFrame finestra1=new JFrame ("finestra IVL");
finestra1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
finestra1.setSize(300,300);
finestra1.setLayout(new GridLayout(3,2));
finestra1.add(l1);
finestra1.add(t1);
finestra1.add(l2);
finestra1.add(t2);
finestra1.add(b1);
finestra1.add(risultato);
b1.addActionListener(this);
finestra1.setVisible(true);
}
public void actionPerformed(ActionEvent event) {
String testo1=t1.getText();
String testo2=t2.getText();
int a=Integer.parseInt(testo1);
int b=Integer.parseInt(testo2);
int somma=a+b;
String r=Integer.toString(somma);
risultato.setText(r);
}
}
Poi occorrerà una main per la creazione di oggetti Finestra2:
public class TestaFinestra { public static void main(String[] args) {
Finestra2 f=new Finestra2();
f.creaForm1();
}
}

Mandandolo in esecuzione, otterremo una finestra che eseguirà l'addizione tra 2 numeri:

lunedì 1 dicembre 2008

Es rotazione poligono (rotazione tramite mouse)







import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.util.*;
import java.awt.geom.*;
public class RotazionePoligono extends Applet implements MouseListener, KeyListener{
private int[] xpoints={0,-10,-7,7,10};
private int[] ypoints={-10,-2,10,10,-2};
private Polygon poly;

int rotation=0;
public void init(){
poly=new Polygon (xpoints,ypoints,xpoints.length);
addMouseListener(this);
addKeyListener(this);
}
public void paint (Graphics g){
Graphics2D g2D=(Graphics2D) g;
int ampiezza=getSize().width;
int altezza=getSize().height;
g2D.setColor(Color.BLACK);
g2D.fillRect(0,0,ampiezza,altezza);
g2D.translate(ampiezza/2,altezza/2);
g2D.scale(20,20);
g2D.rotate(Math.toRadians(rotation));
g2D.setColor(Color.RED);
g2D.draw(poly);
g2D.setColor(Color.BLACK);
g2D.fill(poly);
}
public void mouseEntered(MouseEvent m){}
public void mouseExited(MouseEvent m){}
public void mouseReleased(MouseEvent m){}
public void mouseClicked(MouseEvent m){}
public void mousePressed(MouseEvent m){
switch (m.getButton()){
case MouseEvent.BUTTON1:
rotation--;
if (rotation<0) rotation=359;
repaint();
break;
case MouseEvent.BUTTON3:
rotation++;
if (rotation>360) rotation=0;
repaint();
break;
}
}
public void keyReleased(KeyEvent k){}
public void keyTyped(KeyEvent k){}
public void keyPressed(KeyEvent k){
switch (k.getKeyCode()){
case KeyEvent.VK_LEFT:
rotation--;
if (rotation<0) rotation=359;
repaint();
break;
case KeyEvent.VK_RIGHT:
rotation++;
if (rotation>360) rotation=0;
repaint();
break;
}
}
}

martedì 25 novembre 2008

Esercizi ripasso java (nero=testo; verde,rosso=correzioni)

public string getNome() { ci vuole la S maiuscola
nome=n; e manca il RETURN
}
_________________________________________________________________

int x=34.5; SBAGLIATO perchè ci deve essere il double
_________________________________________________________________

public void setNome(String n) { ci vuole n=nome e niente return perchè
return nome; non restituisce nessun valore
}
_________________________________________________________________

byte b=800; SBAGLIATO perchè byte arriva a 128
_________________________________________________________________

int y=boo; SBAGLIATO perchè int presuppone variabili numeriche di tipo intero
_________________________________________________________________

double z=boo; SBAGLIATO perchè double può assumere solo valori interi e decimali
_________________________________________________________________

public void String setNome(String n) { impossibile perchè o metto String
***** o metto void
}
_________________________________________________________________

public Studente tizio(String n) { --------> é CORRETTO
int x;
Studente y;
return x; -----------> SBAGLIATO perchè non posso
} restituire l'int, ma per forza la
variabile studente
_________________________________________________________________

public Studente tizio(Studente n) { n è una variabile di tipo studente
int x=n; e non posso assegnarla ad una
Studente y=n; di tipo int
return y;
}
_________________________________________________________________

int x;
public Studente tizio(Studente n,int x) {
x=x; è SBAGLIATO. Ci vuole il this.
Studente y=n; cioè this.x=x
return y;
}
_________________________________________________________________

Studente s1; ho creato il riferimento
s1=new Studente(1,"Mario"); ho creato l'oggetto
_________________________________________________________________

public class Studente { esempio
int matricola;
String nome;
public Studente(int matricola, String nome) {
this.matricola=matricola;
this.nome=nome;
}
}
_________________________________________________________________

s1=new Studente(1,"Mario");
s1.assegnaVoto(7);

sabato 1 novembre 2008

Esercizio classi per lunedì 3/11

CLASSE 1

public classe Penna {
private String marca;
private char colore;
private String tipo /*se stilografica oppure a sfera*/;
public Penna(String m,char c,String t) {;
marca=m;
colore=col;
tipo=t;
}
public String getMarca() {
return marca;
}
public char getColore() {
return colore;
}
public String getTipo() {
return tipo;
}
public void setColore(char c) {
colore=col;
}
}

CLASSE 2

public class Foglio {
private String formato;
private String dimensione;
private char tipo; /*se quadretti o righe*/
public Foglio(String f, String dim, char t) {
formato=f;
dimensione=dim;
char=t;
}
public String getFormato() {
return formato;
}
public String getDimensione() {
return dimensione;
}
public char getTipo() {
return tipo;
}
}

CLASSE 3

public class Macchina {
private int anno; /*di costruzione*/
private String modello;
private int porte;
public Macchina() {int a,String mod, int p) {
anno=a;
modello=mod;
porte=p;
}
public int getAnno() {
return anno;
}
public String getModello() {
return modello;
}
public int getPorte() {
return porte;
}
}

CLASSE 4

public class Gatto {
private int eta;
private String nome;
private char sesso;
public Gatto(int e,String n,char s) {
eta=e;
nome=n;
sesso=s;
}
public int getEta() {
return eta;
}
public String getNome() {
return nome;
}

public char getSesso() {
return sesso;
}
public void setEta(int e) {
eta=e;
}
}

CLASSE 5

public classe Impresa {
private String nome;
private String capitale;
private int soci;
public Impresa(String n,String c,int s) {;
nome=n;
capitale=c;
soci=s;
}
public String getNome() {
return nome;
}
public String getCapitale() {
return capitale;
}
public int getSoci() {
return soci;
}
public void setCapitale(String c) {
capitale=c;
}
public void setSoci(int s) {
soci=s;
}
}

CLASSE 6

public classe Squadra {
private String nome;
private int membri;
private int posizione;
public Squadra(String n,int m, int p) {;
nome=n;
membri=m;
posizione=p;
}
public String getNome() {
return nome;
}
public int getMembri() {
return membri;
}
public int getPosizione() {
return posizione;
}
public void setMembri(int m) {
membri=m;
}
public void setPosizione(int p) {
posizione=p;
}
}

CLASSE 7

public classe Edificio {
private int piani;
private int residenti;
private int appartamenti;
public Edificio(int p,int r,int a) {;
piani=p;
residenti=r;
appartamenti=a;
}
public int getPiani() {
return piani;
}
public int getResidenti() {
return r;
}
public int getAppartamenti() {
return appartamenti;
}
public void setResidenti(int r) {
residenti=r;
}
}

CLASSE 8

public classe Programma {
private String nome;
private String estensione;
private int dimensione;
public Programma(String n,String est,int dim) {;
nome=n;
estensione=est;
dimensione=dim;
}
public String getNome() {
return nome;
}
public String getEstensione() {
return estensione;
}
public int getDimensione() {
return dimensione;
}
public void setEstensione(String est) {
estensione=est;
}
public void setDimensione(int dim) {
dimensione=dim;
}
}

CLASSE 9

public classe Stato {
private String nome;
private String capitale;
private int abitanti;
public Stato(String n,String c,int a) {;
nome=n;
capitale=c;
abitanti=a;
}
public String getNome() {
return nome;
}
public String getCapitale() {
return capitale;
}
public int getAbitanti() {
return a;
}
public void setAbitanti(int a) {
abitanti=a;
}
}

CLASSE 10

public classe Scuola {
private String nome;
private String indirizzi;
private String locazione;
private int alunni;
public Scuola(String n,String i,String l, int a) {;
nome=n;
indirizzi=i;
locazione=l;
alunni=a;
}
public String getNome() {
return nome;
}
public String getIndirizzi() {
return indirizzi;
}
public String getLocazione() {
return locazione;
}
public int getAlunni() {
return alunni;
}
public void setLocazione(String l) {
locazione=l;
}
public void setAlunni(int a) {
alunni=a;
}
}

mercoledì 22 ottobre 2008

Esercizio gioco per 24 ottobre

#include
int board[29];
char simbol[3]={' ','','+'};
void azzeraBoard();
void stampaBoard();

int main() {
azzeraBoard();
stampaBoard();
}

void azzeraBoard() {
int i;
for (i=0;i<7;i++) {
board[i]=1;
}
for(i=8;i<13;i++) {
board[i]=1; }
for (i=16;i<19;i++) {
board[i]=1;
}
board[24]=1;
}
void stampaBoard() {
int i;
for (i=0;i<29;i++) {
printf("%c",simbol[board[i]]);
if (i==6) {
printf("\n");
}
}
}