// // BalounesHeritage.java // BalounesHeritage // import java.awt.Graphics; import java.awt.Color; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JFrame; import javax.swing.JPanel; public class BalounesHeritage { private static class BalounesPanel extends JPanel implements MouseListener{ private static Baloune b; private static Attachee a; private static Coloree c; private static Face f; private void trace(String mess){ System.out.println(mess); } private void trace(String mess,Baloune b){ trace(mess+"="+b); } BalounesPanel(){ addMouseListener(this); // oprations sur la baloune de base b = new Baloune(200,150,40); trace("Création de b",b); b.gonfler(20); b.degonfler(30); trace("b après gonfler(20) et degonfler(30)",b); b.deplacer(20,-30); trace("b après deplacer(20,-30)",b); trace("b.contient(200,100)?"+b.contient(200,100),b); a=new Attachee(150,250,25,20); trace("creation de a",a); a.gonfler(20); trace("a après gonfler(20)",a); a.deplacer(30,30); trace("a après deplacer(30,30)",a); a.monter(50); trace("a après monter(50)",a); trace("a.touche(b)?"+a.touche(b),a); trace("a.cordeTouchee(147,75)?"+a.cordeTouchee(147,75)); c= new Coloree(100,200,45,Color.green); trace("Création de c",c); c.degonfler(5); trace("c après degonfler(5)",c); f=new Face(250,100,40,Color.green); trace("création de f",f); f.deplacer(50,50); trace("f après deplacer(50)",f); } public void paintComponent(Graphics g) { super.paintComponent(g); setBackground(Color.white); b.afficher(g,"b"); a.afficher(g,"a"); c.afficher(g,"c"); f.afficher(g,"f"); } public void mouseClicked(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(MouseEvent e) { int x = e.getX(), y = e.getY(); String pos=x+"@"+y+":"; if (b.contient(x,y)){ b.gonfler(10); trace(pos+"b.gonfler(10)",b); } else if (a.contient(x,y)) { a.degonfler(10); trace(pos+"a.degonfler(10)",a); } else if (a.cordeTouchee(x,y)) { a.couperCorde(); trace(pos+"a.c)",a); } else if (c.contient(x,y)){ c.deplacer(10,10); trace(pos+"c.deplacer(10,10)",c); } else if (f.contient(x,y)){ f.changeDAir(); trace(pos+"f.changeDAir",f); } else trace(pos+" dans le vide"); repaint(); } public void mouseReleased(MouseEvent e) {}; } public static void main (String args[]) { JFrame f = new JFrame(); f.getContentPane().add(new BalounesPanel()); f.setLocation(100,100); f.setSize(400,300); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }