mercoledì 11 febbraio 2009

La mia Calcolatrice

Salve a tutti, è da un pò che non pubblico qualcosa di interessante, bene oggi proporrò un'esempio di calcolatrice personalizzata che ognuno poi potrà arricchirla ulteriormente con più istruzioni:


import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Calcolatrice{
private JFrame f=new JFrame("Calcolatrice");
private Pannello p=new Pannello();
private JButton addizione;
private JButton sottrazione;
private JButton moltiplicazione;
private JButton divisione;
private JButton radiceQuad;
private JButton uno;
private JButton due;
private JButton tre;
private JButton quattro;
private JButton cinque;
private JButton sei;
private JButton sette;
private JButton otto;
private JButton nove;
private JButton zero;
private JLabel nome;
private JLabel nomeDue=new JLabel("digita il secondo numero");
private JLabel r=new JLabel();
private JLabel r1=new JLabel("risultato operazione");
private Pannello numeri;
private PannelloComandi operazioni;
private JTextField inCom;
private JTextField in1;
private JTextField in2;


public Calcolatrice(){

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(500,500);
f.setLayout(new GridLayout(4,2));
numeri=new Pannello();
operazioni=new PannelloComandi();
nome=new JLabel("digita il primo numero");
inCom=new JTextField();
in1=new JTextField();
in2=new JTextField();


f.add(operazioni);
f.add(numeri);
f.add(in1);
f.add(nome);
f.add(in2);
f.add(nomeDue);
f.add(r1);
f.add(r);
addizione.addActionListener(new somma());
sottrazione.addActionListener(new sottrazione());
moltiplicazione.addActionListener(new moltiplicazione());
divisione.addActionListener(new divisione());
radiceQuad.addActionListener(new radiceQuad());
f.setVisible(true);
}
public class Pannello extends JPanel{
public Pannello(){

uno=new JButton("1");
this.add(uno);
due=new JButton("2");
this.add(due);
tre=new JButton("3");
this.add(tre);
quattro=new JButton("4");
this.add(quattro);
cinque=new JButton("5");
this.add(cinque);
sei=new JButton("6");
this.add(sei);
sette=new JButton("7");
this.add(sette);
otto=new JButton("8");
this.add(otto);
nove=new JButton("9");
this.add(nove);
zero=new JButton("0");
this.add(zero);

}
}
public class PannelloComandi extends JPanel{
public PannelloComandi(){

addizione=new JButton("+");
this.add(addizione);
sottrazione=new JButton("-");
this.add(sottrazione);
moltiplicazione=new JButton("X");
this.add(moltiplicazione);
divisione=new JButton(":");
this.add(divisione);
radiceQuad=new JButton("Rad");
this.add(radiceQuad);
}
}
public class somma implements ActionListener{

public void actionPerformed(ActionEvent e){

String t1=in1.getText();
String t2=in2.getText();
double x1=Double.parseDouble(t1);
double x2=Double.parseDouble(t2);
double s=x1+x2;
String risultato=Double.toString(s);
r.setText(risultato);
}
}
public class sottrazione implements ActionListener{

public void actionPerformed(ActionEvent e){

String t1=in1.getText();
String t2=in2.getText();
double x1=Double.parseDouble(t1);
double x2=Double.parseDouble(t2);
double sot=x1-x2;
String risultato=Double.toString(sot);
r.setText(risultato);
}
}
public class moltiplicazione implements ActionListener{

public void actionPerformed(ActionEvent e){

String t1=in1.getText();
String t2=in2.getText();
double x1=Double.parseDouble(t1);
double x2=Double.parseDouble(t2);
double m=x1*x2;
String risultato=Double.toString(m);
r.setText(risultato);
}
}
public class divisione implements ActionListener{

public void actionPerformed(ActionEvent e){

String t1=in1.getText();
String t2=in2.getText();
double x1=Double.parseDouble(t1);
double x2=Double.parseDouble(t2);
double d=x1/x2;
String risultato=Double.toString(d);
r.setText(risultato);
}
}
public class radiceQuad implements ActionListener{

public void actionPerformed(ActionEvent e){

String t1=in1.getText();
double x1=Double.parseDouble(t1);
double rad=Math.sqrt(x1);
String risultato=Double.toString(rad);
r.setText(risultato);
}
}

public static void main(String[] args){
Calcolatrice c=new Calcolatrice();
}

}

Ecco la mia calcolatrice personale:

venerdì 23 gennaio 2009

Correzzione Verifica 19/01/2009

La verifica chiedeva le seguenti istruzioni:
Creare una finestra(pannello) dove doveva essere creato un rettangolo di dimensioni a scelta.
Fare il programma in modo da poter disegnare tramite il mouse una linea o segmento; quando l linea interseca da lato a lato opposto il rettangolo, quest'ultimo doveva cambiare colore in modo casuale.

Ecco la corretta esecuzione del programma:


import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class TracciaRettangolo1 {

private JFrame f= new JFrame("Traccia linea rettangolo1");
private Pannello p=new Pannello();
private Point sPoint=new Point();
private Point ePoint=new Point();
int x0=100;
int y0=150;
int w=100;
int h=150;
private boolean intersecato=false;

public TracciaRettangolo1(){

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(450,450);
f.add(p);
f.setVisible(true);
f.addMouseListener(new Linea());
f.addMouseMotionListener(new Linea1());
}

public class Pannello extends JPanel{
public void paintComponent(Graphics g){
if (intersecato==false) {
g.setColor(Color.red);
}
else {
g.setColor(getColor());
}
g.fillRect(x0,y0,w,h);
g.drawLine(sPoint.x,sPoint.y,ePoint.x,ePoint.y);
}
}

public Color getColor(){

int rosso=(int) (Math.random()*255);
int verde=(int) (Math.random()*255);
int blu=(int) (Math.random()*255);
Color colore=new Color(rosso,verde,blu);
return colore;
}

public void interseca() {

intersecato=false;
if ((sPoint.xx0+w)&&(sPoint.y>y0)&&(sPoint.yy0)&&(ePoint.yinizio linea
public void mouseReleased(MouseEvent e) {

ePoint.x=e.getX()-9;
ePoint.y=e.getY()-34;
interseca();
f.repaint();
}

}

public class Linea1 implements MouseMotionListener{

public void mouseMoved(MouseEvent e) {}
public void mouseDragged(MouseEvent e) {
intersecato=false;
ePoint.x=e.getX()-9;
ePoint.y=e.getY()-34;
f.repaint();
}
}
public static void main(String[] args){
TracciaRettangolo1 t=new TracciaRettangolo1();
}

}


Ecco come dovrebbe essere al momento della compilazione:








Poi quando la retta interseca il rettangolo, questo cambia colore:





giovedì 15 gennaio 2009

Coordinate Punto in una Finestra

Questo programmino fatto in classe serve a determinare le coordiate, X e Y, di dove si stà cliccando in quel momento con il mouse nella finestra creata.


import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;



public class TestaInputMouse{


private JFrame f=new JFrame("coordinate punto cliccato");
private Pannello p=new Pannello();
private Point clickx=new Point();
private Point clicky=new Point();


public TestaInputMouse(){


f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(600,600);
f.add(p);
f.addMouseListener(new Coordinate());
f.addMouseMotionListener(new Coordinate1());
f.setVisible(true);
}


public class Pannello extends JPanel{


public void paintComponent(Graphics g){


String tizio="mouse cliccato"+clickx+","+clicky;
g.drawString(tizio,10,20);
f.repaint();
}


}
public static void main(String[] args){
TestaInputMouse t=new TestaInputMouse();
}


public class Coordinate implements MouseListener{
public void mousePressed(MouseEvent e){
clickx.x=e.getX();
}


public void mouseReleased(MouseEvent e){
clicky.y=e.getY();
f.repaint();
}


public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
}


public class Coordinate1 implements MouseMotionListener{
public void mouseDragged(MouseEvent e){
clickx.x=e.getX();
clicky.y=e.getY();
f.repaint();
}


public void mouseMoved(MouseEvent e){}
}



}




Ecco come dovrebbe essere una volta compilato!!!




In questa immagine si può vedere che il punto in cui si stà cliccando con il mouse!
Invece,come si può meglio notare nell'immagine seguente, le coordinate di tale punto sono riportate in alto a sinistra della nostra finestra!
Queste sono le coordinate del punto cliccato viste più in dettaglio:







mercoledì 31 dicembre 2008

Auguri di Un buon 2009 a Tutti!!!

Questo è un piccolo esercizio come ripasso di quello che è stato fatto da poco con l'intento di augurare un felice anno nuovo a tutti.
Freghi auguri a tutti!!!



import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import java.awt.geom.*;
import java.awt.Polygon;

public class AnnoNuovo{
int rotation=0;
int giro;
private Polygon poly;
private Polygon poly2;
private JFrame anno;
private PannelloAnno a;
private JButton accende;
private JButton spegne;
private JPanel pannelloBottoni=new JPanel(new GridLayout(2,1));
private java.util.Timer pallineAccese;
private int[] xpoints={0,-3,-10,-4,-7,0,7,4,10,3};
private int[] ypoints={-10,-3,-2,2,10,5,10,2,-2,-3};

private int[] zpoints={0,-5,-14,-6,-9,0,9,6,14,5};
private int[] jpoints={-14,-5,-2,2,13,7,13,2,-2,-5};

private int editX;
public AnnoNuovo(){
anno=new JFrame("Auguri di Buon Anno a tutti!!!");
anno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
anno.setSize(600,600);
a=new PannelloAnno();
accende=new JButton("attiva animazione");
spegne=new JButton("disattiva animazione");
pannelloBottoni.add(accende);
pannelloBottoni.add(spegne);
anno.add(a,BorderLayout.CENTER);
anno.add(pannelloBottoni,BorderLayout.SOUTH);
accende.addActionListener(new BottoneAccende());
spegne.addActionListener(new BottoneSpegne());
anno.setVisible(true);
}

public class PannelloAnno extends JPanel{
public void paintComponent(Graphics g){
Graphics2D g2d=(Graphics2D) g;
Image annoImmagine=new ImageIcon("anno 2009.gif").getImage();
g.drawImage(annoImmagine,0,0,anno.getWidth(),anno.getHeight(),null);


g.setColor(getColore());
g.fillOval(245,355,18,18);//TAPPO SPUMANTE
g.setColor(getColore());
g.fillOval(100,465,18,18); //SPUMANTE
g.setColor(getColore());
g.fillOval(220,150,18,18); //artificio1
g.setColor(getColore());
g.fillOval(295,220,18,18); //OROLOGIO
g.setColor(getColore());
g.fillOval(370,220,18,18); //artificio2
g.setColor(getColore());
g.fillOval(430,200,18,18); //artificio3
g.setColor(getColore());
g.fillOval(515,133,18,18); //artificio4
g.setColor(getColore());
g.fillOval(335,100,18,18); //artificio5
g.setColor(getColore());
g.fillOval(562,312,10,10); //torre



poly=new Polygon(xpoints,ypoints,xpoints.length);
poly2=new Polygon(zpoints,jpoints,zpoints.length);
int ampiezza=getSize().width;
int altezza=getSize().height;

g2d.setColor(Color.RED);
g2d.drawString("BUON ANNO!!!",((ampiezza/2)-60)+editX,altezza-20);


g2d.translate(ampiezza/2,(altezza/2)-120);
g2d.scale(5,5);
g2d.rotate(Math.toRadians(rotation));
g2d.setColor(Color.YELLOW);

g2d.fill(poly);
g2d.fill(poly2);
g2d.setColor(Color.BLUE);
g2d.draw(poly);
g2d.draw(poly2);

}
}
private Color getColore(){
int verde=(int) (Math.random()*255);
int rosso=(int) (Math.random()*255);
int blu=(int) (Math.random()*255);
Color colore=new Color(verde,rosso,blu);
return colore;
}
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(){
rotation+=2;
editX++;
anno.repaint();

}
});
}
},0,250);
}
}
public class BottoneSpegne implements ActionListener{
public void actionPerformed(ActionEvent event){
pallineAccese.cancel();
}
}
public static void main(String[] args){
AnnoNuovo anno=new AnnoNuovo();
}
}




Ecco a voi il programmino in funzione:



mercoledì 24 dicembre 2008

AUGURI DI BUON NATALE A TUTTI!!!!

Salve prof. auguri di buon natale e felice anno nuovo!!!
Saluti da Baldassarri!!!

venerdì 19 dicembre 2008

Albero di Natale con luci multicolore

Eccoci di nuovo ad inserire una nuova esercitazione in questo blog, che ormai stà diventando bello pienotto.
Questo esercizio sempre in java riguarda l'inserimento di un'immagine in una finestra, in uesto caso di un albero di Natale, dove poi verranno inserite delle forme geometriche rotonde che raffigureranno le nostre luci.
Mediante dei pulsanti inseriti nella finestra potremo controllare quando accenderle e qundo spegnerle!!!!
Buon divertimento, Buone Feste e Buon Natale!!!


/*Albero di Natale*/


import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
public class AlberoNatale{
private JFrame albero;
private PannelloAlbero a;
private JButton accende;
private JButton spegne;
private JPanel pannelloBottoni=new JPanel(new GridLayout(2,1));
private java.util.Timer pallineAccese;
public AlberoNatale(){
albero=new JFrame("Albero di Natale 2008");
albero.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
albero.setSize(600,600);
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);
albero.add(pannelloBottoni,BorderLayout.SOUTH);
accende.addActionListener(new BottoneAccende());
spegne.addActionListener(new BottoneSpegne());
albero.setVisible(true);
}


public class PannelloAlbero extends JPanel{
public void paintComponent(Graphics g){
Graphics g2d=(Graphics2D) g;
Image alberoImmagine=new ImageIcon("decora.gif").getImage();
g.drawImage(alberoImmagine,0,0,albero.getWidth(),albero.getHeight(),null);


g.setColor(getColore());
g.fillOval(300,100,30,30); // fila centrale
g.setColor(getColore());
g.fillOval(300,200,30,30);
g.setColor(getColore());
g.fillOval(300,300,30,30);
g.setColor(getColore());
g.fillOval(300,400,30,30);
g.setColor(getColore());
g.fillOval(300,500,30,30);

g.setColor(getColore()); //fila sinistra
g.fillOval(250,150,30,30);
g.setColor(getColore());
g.fillOval(250,250,30,30);
g.setColor(getColore());
g.fillOval(250,350,30,30);
g.setColor(getColore());
g.fillOval(250,450,30,30);

g.setColor(getColore()); //fila sinistra
g.fillOval(200,200,30,30);
g.setColor(getColore());
g.fillOval(200,300,30,30);
g.setColor(getColore());
g.fillOval(200,400,30,30);
g.setColor(getColore());
g.fillOval(200,500,30,30);

g.setColor(getColore()); //fila sinistra
g.fillOval(150,250,30,30);
g.setColor(getColore());
g.fillOval(150,350,30,30);
g.setColor(getColore());
g.fillOval(150,450,30,30);

g.setColor(getColore()); //fila sinistra
g.fillOval(100,300,30,30);
g.setColor(getColore());
g.fillOval(100,400,30,30);
g.setColor(getColore());
g.fillOval(100,500,30,30);

g.setColor(getColore()); //fila destra
g.fillOval(350,150,30,30);
g.setColor(getColore());
g.fillOval(350,250,30,30);
g.setColor(getColore());
g.fillOval(350,350,30,30);
g.setColor(getColore());
g.fillOval(350,450,30,30);

g.setColor(getColore()); //fila destra
g.fillOval(400,200,30,30);
g.setColor(getColore());
g.fillOval(400,300,30,30);
g.setColor(getColore());
g.fillOval(400,400,30,30);
g.setColor(getColore());
g.fillOval(400,500,30,30);

g.setColor(getColore()); //fila destra
g.fillOval(450,350,30,30);
g.setColor(getColore());
g.fillOval(450,450,30,30);
g.setColor(getColore());
g.fillOval(450,550,30,30);

g.setColor(getColore()); //cappello babbonatale
g.fillOval(460,3,45,45);

}


}


private Color getColore(){


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);
return colore;
}


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);
}
}
public class BottoneSpegne implements ActionListener{


public void actionPerformed(ActionEvent event){


pallineAccese.cancel();
}
}
public static void main(String[] args){


AlberoNatale albero=new AlberoNatale();
}
}



Ecco come dovrebbe essere il risultato:


venerdì 12 dicembre 2008

Esercizio per il 12/12/2008

Ecco l'esercizio datoci dal professore per stamattina...devo dire che mi è rimasto un pò difficile ma prendendo spunto dalle soluzioni date dai miei compagni ho compreso il corretto procedimento!!!