Lezione 7 - Costruzione di interfacce grafiche in Java

Tutti i programmi usati in questa lezione sono disponibili .
In questa lezione abbiamo parlato di:
Esercizio fatto nella lezione:sorgente

import java.awt.*;
import javax.swing.*;
public class Tasto extends JApplet {

 Display disegno;
 
 public void init(){
  disegno = new Display();  
  getContentPane().add(disegno, BorderLayout.CENTER);
  JButton ridisegna = new JButton("Ridisegna");
  getContentPane().add(ridisegna, BorderLayout.SOUTH); 
 }
class Display extends JPanel {
 public void paintComponent(Graphics g){
   super.paintComponent(g);
   g.drawString("CiaoATutti",5,25);
  }
 }
 }

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

public class Tasto1 extends JApplet implements ActionListener {

 Display disegno;
 Color c;
  
 public void init(){
  disegno = new Display();
  getContentPane().add(disegno, BorderLayout.CENTER);
  JButton ridisegna = new JButton("Ridisegna");
  ridisegna.addActionListener(this);
  getContentPane().add(ridisegna, BorderLayout.SOUTH); 
 }

 public void actionPerformed(ActionEvent evt) {
    c= new Color((int)(Math.random()*256),(int)(Math.random()*256),(int)(Math.random()*256));
    disegno.repaint();
   }

class Display extends JPanel {
 public void paintComponent(Graphics g){
   super.paintComponent(g);
   g.setColor(c);
   g.drawString("CiaoATutti",5,25);
  }
 }
 }

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

public class Tasto2 extends JApplet implements ActionListener {

 Display disegno;
 Color c;
 JButton cancella,ridisegna;
 boolean cancellaDisegno; 

 public void init(){
  disegno = new Display();
  cancellaDisegno=false;
  getContentPane().add(disegno, BorderLayout.CENTER);
  ridisegna = new JButton("Ridisegna");
  ridisegna.addActionListener(this);
  cancella = new JButton("Cancella");
  cancella.addActionListener(this);
  getContentPane().add(ridisegna, BorderLayout.SOUTH); 
  getContentPane().add(cancella, BorderLayout.NORTH); 
 }

 public void actionPerformed(ActionEvent evt) {
   if(evt.getSource()==ridisegna) {
    c= new Color((int)(Math.random()*256),(int)(Math.random()*256),(int)(Math.random()*256));
    disegno.repaint();
    } else {
     cancellaDisegno=true;
     disegno.repaint();
   }
   }

class Display extends JPanel {
 public void paintComponent(Graphics g){
   super.paintComponent(g);
   g.setColor(c);
   if(!cancellaDisegno)g.drawString("CiaoATutti",5,25);
    else cancellaDisegno=false;
  }
 }
 }

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

public class Tasto3 extends JApplet implements ActionListener {

 Display disegno;
 Color c;
 JButton cancella,rosso,verde,blu;
 JPanel b;
 boolean cancellaDisegno; 

 public void init(){
  disegno = new Display();
  cancellaDisegno=false;
  getContentPane().add(disegno, BorderLayout.CENTER);
  b = new JPanel();
  rosso = new JButton("Rosso");
  rosso.addActionListener(this);
  b.add(rosso);
  verde = new JButton("Verde");
  verde.addActionListener(this);
  b.add(verde);
  blu = new JButton("Blu");
  blu.addActionListener(this);
  b.add(blu);
  getContentPane().add(b, BorderLayout.SOUTH); 
  cancella = new JButton("Cancella");
  cancella.addActionListener(this);
  getContentPane().add(cancella, BorderLayout.NORTH); 
 }

 public void actionPerformed(ActionEvent evt) {
    if(evt.getSource()==cancella){ 
    cancellaDisegno=true;
     disegno.repaint();
   } else {
     if(evt.getSource()==verde)c=Color.green;
     if(evt.getSource()==rosso)c=Color.red;
     if(evt.getSource()==blu)c=Color.blue;
     disegno.repaint();
     }
   }

class Display extends JPanel {
 public void paintComponent(Graphics g){
   super.paintComponent(g);
   g.setColor(c);
   if(!cancellaDisegno)g.drawString("CiaoATutti",5,25);
    else cancellaDisegno=false;
  }
 }
 }

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Mouse extends JApplet  {

 Display disegno;
 
 public void init(){
  disegno = new Display();  
  getContentPane().add(disegno, BorderLayout.CENTER);
 }
class Display extends JPanel  implements MouseListener{
 int x,y;
 boolean inizio;
 int lunghezza,larghezza;

 Display(){
  addMouseListener(this);
  inizio=true;
   } 
 public void mousePressed(MouseEvent evt) {
  inizio = false;
  x = evt.getX();  // x-coordinate where user clicked.
  y = evt.getY();
  repaint();
 }
 public void mouseEntered(MouseEvent evt) { }
 public void mouseExited(MouseEvent evt) { }
 public void mouseClicked(MouseEvent evt) { }
 public void mouseReleased(MouseEvent evt) { }

 public void paintComponent(Graphics g){
   if(inizio){
     larghezza=getSize().width;
     lunghezza=getSize().height;
     g.setColor(Color.black);
     g.fillRect(0,0,larghezza,lunghezza);
     } else {
    g.setColor(Color.red);
    g.fillRect(x,y,10,10);
     }
  }
 }
 }

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

public class Tasto4 extends JApplet implements ActionListener,MouseMotionListener {

 Display disegno;
 Color c;
 JButton cancella,rosso,verde,blu;
 JPanel b;
 boolean cancellaDisegno; 
 int x,y;
 int lunghezza,larghezza;

 public void init(){
  disegno = new Display(this);
  cancellaDisegno=false;
  getContentPane().add(disegno, BorderLayout.CENTER);
  b = new JPanel();
  rosso = new JButton("Rosso");
  rosso.addActionListener(this);
  b.add(rosso);
  verde = new JButton("Verde");
  verde.addActionListener(this);
  b.add(verde);
  blu = new JButton("Blu");
  blu.addActionListener(this);
  b.add(blu);
  getContentPane().add(b, BorderLayout.SOUTH); 
  cancella = new JButton("Cancella");
  cancella.addActionListener(this);
  getContentPane().add(cancella, BorderLayout.NORTH); 
 }

 public void actionPerformed(ActionEvent evt) {
    if(evt.getSource()==cancella){ 
    cancellaDisegno=true;
     disegno.repaint();
   } else {
     if(evt.getSource()==verde)c=Color.green;
     if(evt.getSource()==rosso)c=Color.red;
     if(evt.getSource()==blu)c=Color.blue;
     cancellaDisegno = true;
     disegno.repaint();
     }
   }
 public void mouseDragged(MouseEvent evt) {
  x = evt.getX();  // x-coordinate where user clicked.
  y = evt.getY();
  disegno.repaint();
 }
 public void mouseMoved(MouseEvent evt) { }

class Display extends JPanel {
 Tasto4  t; 
 Display(Tasto4 t1){ 
   t=t1;
   addMouseMotionListener(t);
  }
 public void paintComponent(Graphics g){
   g.setColor(c);
   if(!t.cancellaDisegno) {
       g.setColor(t.c);
       g.fillRect(t.x,t.y,1,1);
   } else {
       t.cancellaDisegno=false;
       t.larghezza=getSize().width;
       t.lunghezza=getSize().height;
       g.setColor(Color.black);
       g.fillRect(0,0,t.larghezza,t.lunghezza);
     }
  }
 }
 }