application |
import
java.awt.*; import java.awt.event.*; import javax.swing.*; public class Ex1 { public static void main (String[] arg){ JFrame f = new JFrame("Ex 1"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); MyCanvas cs = new MyCanvas(); f.add("Center",cs); f.setSize(250,350); cs.setBackground(Color.yellow); cs.setForeground(Color.BLUE); cs.setFont(new Font("TimesRoman",Font.ITALIC,24)); cs.repaint(); f.setVisible(true); } } class MyCanvas extends Canvas{ int iw=100,ih=100; Image img=Toolkit.getDefaultToolkit().getImage("1_MAGIC.JPG"); public void paint (Graphics g){ g.drawString("This an image", 20, 20) ; g.drawImage(img, iw, ih,120,120, this); } } |
souris |
import
java.awt.*; import java.awt.event.*; import javax.swing.*; public class Ex1 { static Image img=Toolkit.getDefaultToolkit().getImage("1_MAGIC.JPG"); static MyCanvas cs = new MyCanvas(); public static void main (String[] arg){ JFrame f = new JFrame("Ex 1"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); cs.addMouseListener(new MyMouse()); f.add(cs); f.setSize(250,350); cs.setBackground(Color.yellow); cs.setForeground(Color.BLUE); cs.setFont(new Font("TimesRoman",Font.ITALIC,24)); cs.repaint(); f.setVisible(true); } static public class MyMouse extends MouseAdapter { public void mouseClicked(MouseEvent ev) { cs.x=ev.getX(); cs.y=ev.getY(); cs.repaint(); System.out.println("x="+ev.getX() + " y="+ ev.getY()); } } static class MyCanvas extends Canvas{ int x=50,y=70; public void paint (Graphics g){ g.drawString("This an image", 20, 20) ; g.drawImage(img, x, y,120,120, this); } } } |
Exemple avec des cartes à jouer |
import
java.applet.*; import java.awt.event.*; import java.awt.*; import javax.swing.*; public class CardEx extends Canvas{ Image Card[] = new Image[5]; int wh=70,ht=100; int vX[]=new int[Card.length]; int vY[]=new int[Card.length]; boolean back[] = new boolean[Card.length]; boolean ctch[] = new boolean[Card.length]; int helpX,helpY,clicks; public static void main(String[] arg){ JFrame fr = new JFrame("Card example"); fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fr.setSize(400, 400); fr.setVisible(true); CardEx ce = new CardEx(); fr.add(ce); ce.init(); } public void init(){ setBackground(Color.green); for(int i=0; i<Card.length;i++){ Card[i]=Toolkit.getDefaultToolkit().getImage("C"+i+".jpg"); vX[i]=20+55*i; vY[i]=30; back[i]=ctch[i]=false; } addMouseListener(new MouseHandler()); addMouseMotionListener(new MouseMotionHandler()); } class MouseHandler extends MouseAdapter { public void mousePressed(MouseEvent e){ helpX=e.getX(); helpY=e.getY(); for(int i=0;i<Card.length;i++){ if(chckIn(i,helpX,helpY)){ ctch[i]=true; if(e.getClickCount()==2){ if(back[i]) Card[i]=Toolkit.getDefaultToolkit().getImage("C"+i+".jpg"); else Card[i]=Toolkit.getDefaultToolkit().getImage("Cback.jpg"); back[i]=!back[i]; repaint(vX[i],vY[i],wh,ht); } } } clicks=e.getClickCount(); repaint(); } public void mouseReleased(MouseEvent e){ for(int i=0;i<Card.length;i++) ctch[i]=false; repaint(); } } class MouseMotionHandler extends MouseMotionAdapter { public void mouseDragged(MouseEvent e){ int x = e.getX(); int y = e.getY(); for(int i=0;i<Card.length;i++) if(ctch[i]) { vX[i]+=(x-helpX); vY[i]+=(y-helpY); repaint(vX[i],vY[i],wh,ht); helpX=x; helpY=y; } } } public void paint(Graphics g) { for(int i=0;i<Card.length;i++){ g.drawImage(Card[i], vX[i], vY[i], wh,ht,this); g.drawRect(vX[i], vY[i], wh,ht); } } boolean chckIn(int ncard, int x, int y){ if( (x>vX[ncard])&& (x< vX[ncard]+wh) && (y> vY[ncard])&& (y< vY[ncard]+ht) ) return true; return false; } } |
Deuxième Exemple avec des cartes à jouer |
import
java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; class CardObj{ Image card,cardBack; int vx,vy; static int cLen=70,cHeight=100; boolean back; CardObj(int num,int x, int y,PassEx passEx){ card=Toolkit.getDefaultToolkit().getImage("C"+num+".jpg"); cardBack=Toolkit.getDefaultToolkit().getImage("Cback.jpg"); vx=x; vy=y; back=false; } void draw(Graphics g,PassEx passEx){ if(!back) g.drawImage(card,vx,vy,cLen,cHeight,passEx); else g.drawImage(cardBack,vx,vy,cLen,cHeight,passEx); g.drawRect(vx, vy, cLen,cHeight); } } class PileCard extends Stack{ int vx,vy; PileCard(int x, int y){ vx=x; vy=y; } boolean dansPile(int x, int y){ if( (x>vx)&&(x<vx+CardObj.cLen)) if((y>vy) && (y<vy+CardObj.cHeight)) return true; return false; } void push(CardObj card){ card.vx=vx; card.vy=vy; card.back=!card.back; super.push(card); } } class TablCard extends Vector{ int vx,vy; static int dist=10; TablCard(int x, int y, int d){ vx=x; vy=y; dist=d; } int indTabl(int x, int y){ for(int i=0; i < size(); i++){ if((x > vx+i*(CardObj.cLen+dist))&& (x < vx+i*(CardObj.cLen+dist)+CardObj.cLen)) if((y > vy) && (y < vy+CardObj.cHeight)) return i; } return -1; } void addElement(CardObj card){ card.vx = vx+size()*(CardObj.cLen+dist); card.vy = vy; super.addElement(card); } void deleteAt(int i){ for(int k =i+1; k<size(); k++) ((CardObj)get(k)).vx-=CardObj.cLen+dist; super.removeElementAt(i); } void draw(Graphics g,PassEx place){ for(int i =0; i < size(); i++) ((CardObj)get(i)).draw(g,place); } } public class PassEx extends Canvas{ PileCard pileDep,pileDest; TablCard bureau; public void init() { setBackground(Color.green); pileDep=new PileCard(20,20); pileDest= new PileCard(200,20); bureau = new TablCard(20,200,10); for(int i= 0;i<5;i++) pileDep.push(new CardObj(i,pileDep.vx,pileDep.vy,this)); addMouseListener(new MouseHandler()); } public void paint(Graphics g) { if(!pileDep.empty()){ ((CardObj)pileDep.peek()).draw(g,this); } if(!pileDest.empty()){ ((CardObj)pileDest.peek()).draw(g,this); } if(!bureau.isEmpty()) bureau.draw(g,this); } class MouseHandler extends MouseAdapter { public void mousePressed(MouseEvent e){ int x=e.getX(), y=e.getY(), k; if(pileDep.dansPile(x,y) && !pileDep.empty()){ pileDest.push((CardObj)pileDep.pop()); } else if(pileDest.dansPile(x,y) && !pileDest.empty()) bureau.addElement((CardObj)pileDest.pop()); else if((k=bureau.indTabl(x,y))>=0){ pileDep.push((CardObj)(bureau.elementAt(k))); bureau.deleteAt(k); } repaint(); } } public static void main(String[] arg){ JFrame fr = new JFrame("Solitaire"); fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fr.setSize(400, 400); PassEx cv = new PassEx(); fr.add(cv); cv.init(); fr.setVisible(true); } } |