begin process at 2012 02 14 04:44:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Multimédia

 > 

Java2D

 > 

Cherche desesperement comment bougez dans Frame


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Cherche desesperement comment bougez dans Frame

dimanche 14 juin 2009 à 01:29:01 | Cherche desesperement comment bougez dans Frame

Iko01

Bonjour et désolé d'encombrer les forum avec des question toujours si conne mais je suis en fin de projet et je ne sais plus vers qui me tourné. En effet il me manque à savoir comment peut on bougez avec la methode move() dans Frame.

Tout d'abord dans mon application il existe 6 principal class:
Rectangle -- permet de dessiner un rectangle extends shape
Ellipse -- permet de dessiner un ellipse extends shape
Disque -- objet disque extends shape
Poteau -- objet poteau avec vector de disque extends shape
Drawing -- Frame
Shape -- est la classe de base qui représente une forme géométrique.
les class rectangle, Ellipse et Shape ont été ecrit en cours mais je crois bien qu'il y a une faute dans move().
Dans ma fenetre Drawing je dessine apartir d'un vector shape, jusqu'a la tout va bien, j'arrive à initialiser les propriétes des poteau et des disques, or de que je decide de bougez par la class move (), le compilateur m'affiche le message d'erreur suivant :
Exception in thread "main" java.lang.NullPointerException
 at Drawing.move(Drawing.java:132) // j mis un commentaire sur cette erreur dans la procedure move() (tout en bas)
  at java.awt.Component.setLocation(Component.java:1970)
  at java.awt.Window.init(Window.java:398)
  at java.awt.Window.<init>(Window.java:432)
  at java.awt.Frame.<init>(Frame.java:403)
  at java.awt.Frame.<init>(Frame.java:368)
  at Drawing.<init>(Drawing.java:34)
  at Drawing.main(Drawing.java:139)
je sais bien que cette erreur Thread sur main est trés grave, mais je n'arrive pas à resoudre ce probleme.
voici mon code de la class Drawing:
public class Drawing extends Frame{
// -- Global constants ------------------------------------------------
private static String WND_TITLE = "Drawing";
private static int WND_WIDTH = 900;
private static int WND_HEIGHT = 500;
private static int tableaux[][];
private static int nbDisques =0;
private static Vector <Disque> vecA = new Vector();
private static Vector <Poteau> vecPot = new Vector();
private static char potDepart;
private static char potArrivee;
private static char again;
// -- Global variables -----------------------------------------------
private Vector<Shape> shapeVector = new Vector<Shape>();
private final int deltaX =10;
private final int deltaY = 10;
private int hauteur =150;
private final int nbMaxDisques = 5;
private Vector <Disque> vecB = new Vector();
private Vector <Disque> vecC = new Vector();
// Constructor
public Drawing()
{
// Initialise the frame
this.setTitle(WND_TITLE);
this.setSize(WND_WIDTH, WND_HEIGHT);
this.setVisible(true);
this.toFront();
this.setLocationRelativeTo(null);
}
/*******************************************************************
* Create the robot
*******************************************************************/
public void create(Vector<Poteau> v)
{
int noPoteau = 3;
int table[][] = new int[noPoteau][nbMaxDisques+1];
int posX1; // poteau A
int posX2; // poteau B
int posX3; // poteau C
int posY;
int largeurBase = 175;
int largeur;
Point point = new Point();
posX1 = WND_WIDTH/4;
posX2 = WND_WIDTH/2;
posX3 = 3 *WND_WIDTH/4;
posY = 3*WND_HEIGHT/4;
v.get(0).setCentreX(posX1); // set x Poteau A
v.get(1).setCentreX(posX2); // set x Poteau B
v.get(2).setCentreX(posX3); // set x Poteau C
v.get(0).setCentreY(posY); // set y Poteau A
v.get(1).setCentreY(posY); // set y Poteau B
v.get(2).setCentreY(posY); // set y Poteau C

Color niceBlue = new Color(204, 204, 255);
Color niceColor = new Color(130, 130, 255);
//Base poteau A
this.shapeVector.add(new Rectangle(new Point(posX1- (largeurBase/2), posY), largeurBase , deltaY,
Color. BLUE, niceColor));
// hauteur A
this.shapeVector.add(new Rectangle(new Point(posX1- deltaY/2, posY-hauteur), deltaY , hauteur,
Color. BLUE, niceBlue));
this.shapeVector.add(new Rectangle(new Point(posX2- (largeurBase/2), posY), largeurBase , deltaY,
Color. BLUE, niceColor));
this.shapeVector.add(new Rectangle(new Point(posX2-deltaY/2, posY-hauteur), deltaY , hauteur,
Color. BLUE, niceBlue));
this.shapeVector.add(new Rectangle(new Point(posX3- (largeurBase/2), posY), largeurBase , deltaY,
Color. BLUE, niceColor));
this.shapeVector.add(new Rectangle(new Point(posX3 -deltaY/2, posY-hauteur), deltaY , hauteur,
Color. BLUE, niceBlue));
int largeurDisque = 0;
int posYDisque = 0;
for (int i = 1; i < nbDisques+1; i++){
    largeurDisque = 2*i*deltaX;
    posYDisque = (posY - ((nbDisques-i)+1)*deltaY);
    this.shapeVector.add(new Rectangle(new Point(posX1-(largeurDisque/2), posYDisque), largeurDisque , deltaY,
    Color. BLUE, niceBlue));
}
repaint();
}
public Vector <Poteau> CreePoteaux(Vector <Disque> v){
        Vector <Poteau> Ptx = new Vector();
        Poteau A = new Poteau(v);
        Ptx.add(0, A);
        Poteau B = new Poteau(vecB);
        Ptx.add(1, B);
        Poteau C = new Poteau(vecC);
        Ptx.add(2, C);
        return Ptx;
        }
public Vector <Disque> Disque(){
            Vector <Disque> DisqueP = new Vector();
            for (int i = 0; i<nbDisques; i++ ){
                Disque nDisque = new Disque(i);
                DisqueP.add(i, nDisque);
           }
return DisqueP;}
private Point coinHautGauche(Poteau p, int hauteur, int largeur){
    Point point = new Point();
    point.x = p.getCentreX() - deltaX*largeur;
    point.y = p.getCentreY() - 2*deltaY*hauteur;
    return point;
}
/*******************************************************************
* Paints the graphics
*******************************************************************/
public void paint(Graphics g)
{
for(int i = 0; i < this.shapeVector.size(); i++)
{
shapeVector.get(i).draw(g);
g.setFont(new Font("Serif", Font.PLAIN, 20));
g.drawString("A",WND_WIDTH/4, 4*WND_HEIGHT/5);
g.drawString("B",WND_WIDTH/2, 4*WND_HEIGHT/5);
g.drawString("C",3*WND_WIDTH/4, 4*WND_HEIGHT/5);
}
}
        public void move(int x,int y)
         {
            for(int i = 0; i < this.shapeVector.size() ; i++)  // l'endroit où le compilateur signal l'erreur
            {
                shapeVector.get(i).move(x, y);
            }
             repaint();
    }
public static void main (String[] args){
    Drawing d = new Drawing();
    do{
        System.out.println("Entrez le nombre de disques :");
        nbDisques = Input.readInt();
        vecA = d.Disque();
        vecPot = d.CreePoteaux(vecA);
        d.create(vecPot);
        System.out.println("Entrez le poteau de départ:");
        potDepart = Input.readChar();
        System.out.println("Entrez le poteau de départ:");
        potArrivee = Input.readChar();
        switch(potArrivee){
            case 'B' : d.move(vecPot.get(1).getCentreX(), vecPot.get(1).getCentreY());
        }
        System.out.println("Voulez vous recommencer:(y pour continuer)");
        potArrivee = Input.readChar();
    }while (again == 'y');
  /*  System.out.println("Entrez le poteau de départ:");
    potDepart = Input.readChar();
    System.out.println("Entrez le poteau de départ:");
    potArrivee = Input.readChar();
    if (potDepart == 'A'&& potArrivee == 'B'){
        d.move(vecPot.get(1).getCentreX(), vecPot.get(1).getCentreY());
    }*/
}
}

dans Shape j une mehode equalement move() qui se ecrit de la maniere suivante :
public void move(int x, int y)
{
         p1.x+=x;
         p1.y+=y;

         p2.x+=x;
         p2.y+=y;
}

Shape a comme proprièté que de 2 point et 2 color.
 
si quelqu'un peut m'aider le plus vite possible ca serais tres TRES sympa.

dimanche 14 juin 2009 à 13:49:01 | Re : Cherche desesperement comment bougez dans Frame

sheorogath

Membre Club Administrateur CodeS-SourceS
p1 ou p2 est null

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"


Cette discussion est classée dans : int, private, vector, wnd, poteau


Répondre à ce message

Sujets en rapport avec ce message

Probleme pour Dessiner un graphics avec swing [ par Iko01 ] Bonjour à tous, voila actuellement je suis sur un petit projet de fin d'année qui consiste à réaliser le jeux "tours de Hanoï" par java, sauf problème contour actif [ par takwatouma ] Bonjour,J'ai testé  le code de ontour actif mais je trouve un pb d'appliquer sur mon image?voila une portion de code.merci de me donner idéé.public cl Utiliser un JLabel Dynamique dans un event du meme JLabel [ par minosubb ] BonjourJ'ai crée une Map composée de 4 couches de 121 JLabel (pour l'instant, c'est ce que j'ai trouve pour gerer les passages de perso devant et derr problem pour classe vector [ par khazzab ] salut j'ai un fichier .txt  qui contient dans la premier partie des balises que je doit les eliminé  et la seconde partie est text simple par exeemple Help... Jeu de battleship en java... [ par joedalton1979 ] Bonjour... Nous sommes vendredi soir 8hpm et je dois remettre ce travail lundi matin.. Voici ce qui devait etre fait... Un jeu de battleship, qui ce j tri de colonne dans un jtable [ par nam90 ] bonjour à tous,voilà de puis quelques temps j'essaye de trier les colonnes de ma jtable et ça marche bien, le seul problème se trouve sur les colonnes mise à jour automatique de jtable à partir de BD [ par unaware ] Bonjour à tous, Je suis nouveau dans ce forum. Je fais appel à vos compétence car j'ai un petit souci. Je suis en train de développez une petite appli vecteur d'entier [ par nadap ] Salut à tous, j'ai un probleme avec un vecteur d'entier.j'inserte des int dans un vecteur et quand je veux les recupérer plus tard, il me parle d'inco Supprimer "0" d'un tableau [ par Conurbateur ] Bonjour,Je cherche à créer une méthode pour supprimer les "0" dans un tableau, j'utilise donc cette méthode :import java.util.*;public class Test {    PB avec un Vector [ par niyax ] !! wise pushing !!salut,comme dans tous les vectors, j'y stocke des objets. Le pb est que je n'arrive pas a acceder aux attributs de ces satanés objet


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales