doctib | au moment ou tu l'utilise, ton "getGraphics()" te renvoit quelque chose de null...
il faut en fait que tu mette un peu de code dans la méthode paint ou repaint, pourquoi?
parce que pour se dessiner (paint) ou redessiner(repaint) , la fenetre va aller lire le code qu'il y a dans ces méthodes.
voilà un exemple rapide, et plus correct avec le model object. Si tu as une quesiton n'hésites pas:
Code :
- import java.awt.*;
- import java.awt.event.*;
- class Dess extends Frame{
- public Dess(int l, int h) {
- super("Fenetre Dess" );
- this.addWindowListener(new WindowAdapter() {
- public void windowClosing(WindowEvent we) {
- System.out.println("Fenetre fermee, c'est fini." );
- System.exit(0);
- }
- });
- this.setSize(l, h);
- this.setBackground(Color.white);
- this.setForeground(Color.black);
- this.setVisible(true);
- }
- private void dessineUnTrait(int xStart,int yStart,int xEnd,int yEnd ){
- Graphics g = this.getGraphics();
- // je teste si g et non nul
- if (g != null) {
- System.out.println("g null, peux pas dessiner :(" )
- g.drawLine(xStart, yStart, xEnd, yEnd);
- }
- }
- @Override
- public void paint(Graphics arg0) {
- super.paint(arg0);
- arg0.drawLine(0,0,150,100);
- }
- public static void main(String[] args) {
- final int largeur = 200, hauteur = 100;
- Dess dessin = new Dess(largeur, hauteur);
- }
- }
|
Message édité par doctib le 01-12-2006 à 18:48:31
|