Affichage d'object .obj dans un canvas3D [Résolu]

- 12 mars 2013 à 13:48 - Dernière réponse :  Utilisateur anonyme
- 13 mars 2013 à 17:21
Bonjour ,
je suis une débutante sur java3D j'ai reussi a afficher un canvas3D mais j'arrive pas à charger une image *.obj l'afficher dans ce canvas3D en appuiant sur un bouton parcourir voila ce que j'ai utilisé :
if (e.getSource()==parcourir) {
// try {
JFileChooser fd = new JFileChooser("Répertoire de l'image:");
fd.setVisible(true);
fd.showOpenDialog(null);
filename = "maison.max";
int dim = ObjectFile.RESIZE;
ObjectFile f = new ObjectFile(dim,
(float)(creaseAngle * Math.PI / 180.0));
Scene s = null;
try
{
System.out.println("bn,");
s = f.load(filename);
}
catch (FileNotFoundException evt)
{
System.err.println(e);
System.exit(1);
}
catch (ParsingErrorException evt)
{
System.err.println(e);
System.exit(1);
}
catch (IncorrectFormatException evt)
{
System.err.println(e);
System.exit(1);
}
Merci pour votre aide
Afficher la suite 

Votre réponse

31 réponses

Meilleure réponse
- 13 mars 2013 à 17:19
3
Merci
Au moins on voit une trace d'exception. Vous ne comprenez pas le code que vous essayez d'utiliser. Il faut créer l'objet ObjectFile à partir du chemin vers le fichier qui est sur votre bureau. Là, vous voyez bien que ça prend le chemin de l'exemple, c'est normal que le fichier ne soit pas trouvé. De plus, vous n'avez pas compris la documentation de setBackClipDistance et setFrontClipDistance ni le concept de frustum. Si vous mettez vos plans au même endroit, vous ne verrez rien du tout.



























T.U.E.R (First Person Shooter créé par Julien Gouesse)

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
719
Date d'inscription
lundi 5 décembre 2005
Dernière intervention
8 janvier 2014
- 13 mars 2013 à 10:03
0
Merci
Bonjour,

Et l'erreur est ? FileNotFoundException , ParsingErrorException, IncorrectFormatException ou autre chose ?
Que dit la console ? Est-ce qu'il y a une trace de la pile d'exécution (StackTrace) ?

Dire "ça marche po", ne suffit pas à comprendre ce qui ne va pas et ne permet pas de t'aider.
Merci pour ton aide ;o)
Commenter la réponse de cs_AlexN
0
Merci
Bonjour pour etre précise voila mon erreur :

Exception in thread "AWT-EventQueue-0" java.lang.UnsupportedOperationException: Not supported yet.
at testobject.Test.mouseEntered(Test.java:144)
at java.awt.AWTEventMulticaster.mouseEntered(AWTEventMulticaster.java:283)
at java.awt.Component.processMouseEvent(Component.java:6298)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6054)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.trackMouseEnterExit(Container.java:4366)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:617)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

et voila ma classe :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package testobject;

import com.sun.j3d.loaders.IncorrectFormatException;
import com.sun.j3d.loaders.ParsingErrorException;
import com.sun.j3d.loaders.Scene;
import com.sun.j3d.loaders.objectfile.ObjectFile;
import java.awt.*;
import java.awt.event.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
// classes Java 3D
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.universe.SimpleUniverse;
import javax.media.j3d.*;
import java.awt.image.*;
import javax.vecmath.*;
import java.util.*;
import com.sun.j3d.utils.picking.behaviors.*;
import com.sun.j3d.utils.picking.*;
import java.io.FileNotFoundException;

public class Test extends Frame implements MouseListener,MouseMotionListener{

Canvas3D canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
SimpleUniverse simpleU= new SimpleUniverse(canvas3D); ;
private double creaseAngle = 60.0;
private String filename;


BoundingSphere behaveBounds = new BoundingSphere();
JButton parcourir;
Panel pan;

public Test(){
super("Test de l'application :p :p" );
setLayout(new BorderLayout());
Panel framepane=new Panel();
framepane.setBackground(Color.cyan);
this.add(framepane);
framepane.setLayout(null);
this.setSize(500,500);
this.setVisible(true);


Panel panel=new Panel();
panel.setLayout(new BorderLayout());panel.setBackground(Color.blue);
panel.setSize(500,500);panel.setLocation(120,40);
pan=new Panel();pan.setLayout(null);
pan.setBackground(Color.yellow);
JSeparator sep = new JToolBar.Separator();
sep.setBackground(Color.blue);
sep.setOpaque(true);
panel.add(pan);
panel.setLocation(140, 80);
pan.add(canvas3D);
pan.setSize(300,300);canvas3D.setSize(300,500);




canvas3D.setLocation(pan.getLocation());
canvas3D.setBackground(Color.red);
framepane.add(panel);


//---creation des boutons
parcourir=new JButton("Parcourir." );parcourir.addMouseListener(this);
parcourir.setSize(100,30);parcourir.setLocation(30,10);
framepane.add(parcourir);
this.setSize(500,500);this.setVisible(true);

}
//--------------------------


public void mouseClicked(MouseEvent e){



if (e.getSource()==parcourir) {
// try {
JFileChooser fd = new JFileChooser("Répertoire de l'image:");
fd.setVisible(true);
fd.showOpenDialog(null);
filename = "C:\\imane\\desktop\\wateringcan.obj";
int dim = ObjectFile.RESIZE;
ObjectFile f = new ObjectFile(dim,
(float)(creaseAngle * Math.PI / 180.0));
Scene s = null;
try
{
System.out.println("bn,");
s = f.load(filename);
}
catch (FileNotFoundException evt)
{
System.err.println(e);
System.exit(1);
}
catch (ParsingErrorException evt)
{
System.err.println(e);
System.exit(1);
}
catch (IncorrectFormatException evt)
{
System.err.println(e);
System.exit(1);
}


}

rafraichir();
}

//-------------------------------------
public void rafraichir(){
}


public void mouseReleased(MouseEvent e){canvas3D.repaint() ;}


public void mouseMoved(MouseEvent e){}
//ajouter des spheres a notre univers

//-------methode main
public static void main(String args[]){
Test myApp=new Test();
}

public void mousePressed(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}

public void mouseEntered(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}

public void mouseExited(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}

public void mouseDragged(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}


}
Commenter la réponse de bimane
0
Merci
J'ai essayé de résoudre cette erreur mais là j'ai une autre et il n'affiche toujours rien
l'erreur :run:

java.awt.event.MouseEvent[MOUSE_CLICKED,(46,20),absolute(84,60),button=1,modifiers=Button1,clickCount=1] on javax.swing.JButton[,30,10,100x30,alignmentX=0.0,alignmentY=0.5,border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@bb0d0d,flags=296,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=2,left=14,bottom=2,right=14],paintBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=Parcourir.,defaultCapable=true]
Commenter la réponse de bimane
- 13 mars 2013 à 12:42
0
Merci
Bonjour

Le modèle au format WaveFront OBJ doit être dans le frustum sinon vous ne verrez absolument rien.

Vous devez utiliser View.setBackClipDistance() et View.setFrontClipDistance().




















T.U.E.R (First Person Shooter créé par Julien Gouesse)
Commenter la réponse de Utilisateur anonyme
Messages postés
719
Date d'inscription
lundi 5 décembre 2005
Dernière intervention
8 janvier 2014
- 13 mars 2013 à 13:01
0
Merci
Re,

Il faut bien comprendre que si ton IDE (interface de programmation, eclipse, netbeans ou autre) te permet d'indenter ton code et de le coloriser, c'est pour que tu puisses le lire correctement et comprendre ce que tu fais.
Comment veux-tu que je lise le torchon que tu as copier/coller (noir sur fond blanc et sans aucune indentation) ?
Utilises les balises de l'éditeur de message de ce site pour que ce soit lisible, s'il te plait.

at testobject.Test.mouseEntered(Test.java:144)


La stacktrace dit qu'il y a une erreur à la ligne 144. Qu'est-ce que cette ligne ? Tu penses qu'en plus de lire un torchon, je vais compter les lignes ?

at java.awt.AWTEventMulticaster.mouseEntered(AWTEventMulticaster.java:283)


Ta Frame implémente les interfaces MouseListener,MouseMotionListener et notamment la capture de l’événement MouseEntered, que tu gères comme ceci :

public void mouseEntered(MouseEvent e) {
   throw new UnsupportedOperationException("Not supported yet.");
} 


Ton programme marche bien.
Il capture l'évènement MouseEnter, et tu as demandé au gestionnaire de cet évènement de lever une exception de type UnsupportedOperationException. Et c'est bien ce qui se passe comme en atteste la première ligne de la stacktrace :

Exception in thread "AWT-EventQueue-0" java.lang.UnsupportedOperationException: Not supported yet.


Ton application n'est pas fausse mais incomplète. Il faut que tu ajoutes le code qui correspond à la capture de l’événement MouseEnter dans le gestionnaire, au lieu de lever une exception.

public void mouseEntered(MouseEvent e) {
   // Faire ce qui doit être fait en cas de clic
   // Et prier pour que ça marche ;o)
} 
Commenter la réponse de cs_AlexN
0
Merci
Merci pour ta réponse j'ai bien résolu ce problème maintenant mais Mr gouessej m'as dis que je dois utiliser ces deux méthodes pour que mon objet sera visible dans le canvas View.setBackClipDistance() et View.setFrontClipDistance()
Je cherche comment les utiliser mais je n'arrive pas à trouver
ce sont des méthodes mais le contexte de ces méthodes je ne sais pas ce quoi ca doit contenir.
public void setFrontClipPolicy(int policy) {
      synchronized(this) {
         // Mais le code ici je ne sais pas ce que ca doit etre 
      }
      canvas3D.repaint();
    }


public int getFrontClipPolicy() {
return this.frontClipPolicy;
//et ce frontClipPolicy; je ne sais pas sa nature
}
Merci bcp
Commenter la réponse de bimane
Messages postés
719
Date d'inscription
lundi 5 décembre 2005
Dernière intervention
8 janvier 2014
- 13 mars 2013 à 13:25
0
Merci
gouessej est plus qualifié que moi pour la partie 3D. Je n'y connais rien.
Enfin au moins une partie de ton problème est résolu. Tu avances, tant mieux
Commenter la réponse de cs_AlexN
0
Merci
merci bcp
je cherche toujours
Bonne journée
Commenter la réponse de bimane
- 13 mars 2013 à 13:35
0
Merci
Je vous ai dit d'utiliser setBackClipDistance et setFrontClipDistance, pourquoi parlez-vous de setFrontClipPolicy? La documentation est ici (je suis désolé, la documentation de la version 1.6 de Java3D n'a pas encore été publiée à ma connaissance). Vous pouvez appeler votreCanvas.getView().setBackClipDistance().

Peut-être que simpleU.getViewingPlatform().setNominalViewingTransform() peut suffire.


















T.U.E.R (First Person Shooter créé par Julien Gouesse)
Commenter la réponse de Utilisateur anonyme
0
Merci
     if (e.getSource()==parcourir) {
               // try {
                    JFileChooser fd = new JFileChooser("Répertoire de l'image:");
                    fd.setVisible(true);
                    fd.showOpenDialog(null);
                   filename = "C:\\imane\\desktop\\wateringcan.obj";
                            int dim = ObjectFile.RESIZE;
                            ObjectFile f = new ObjectFile(dim,
                                      (float)(creaseAngle * Math.PI / 180.0));
                            Scene s = null;
                                    try
                                    {
                                        System.out.println("bn,");
                                            s = f.load(filename);
                                            
                                    }
                                    catch (FileNotFoundException evt)
                                    {
                                            System.err.println(e);
                                            System.exit(1);
                                    }
                                    catch (ParsingErrorException evt)
                                    {
                                            System.err.println(e);
                                            System.exit(1);
                                    }
                                    catch (IncorrectFormatException evt)
                                    {
                                            System.err.println(e);
                                            System.exit(1);
                                    }
                   

 	}
canvas3D.getView().setBackClipDistance(creaseAngle);
simpleU.getViewingPlatform().setNominalViewingTransform();
 rafraichir();
 }

Voila mon code j'ai fais exactement ce que vous m'avez demandé voici la portion du code que j'utilise quand je clique sue le bouton parcourir !Rien ne s'affiche toujours et j'ai cette erreur
java.awt.event.MouseEvent[MOUSE_CLICKED,(57,23),absolute(95,63),button=1,modifiers=Button1,clickCount=1] on javax.swing.JButton[,30,10,100x30,alignmentX=0.0,alignmentY=0.5,border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@49d67c,flags=296,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=2,left=14,bottom=2,right=14],paintBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=Parcourir.,defaultCapable=true]
Java Result: 1
Commenter la réponse de bimane
0
Merci
J'ai fait ce que vous m'avez demandé mais j'ai rien qui s'affiche .
voila l'erreur
java.awt.event.MouseEvent[MOUSE_CLICKED,(57,23),absolute(95,63),button=1,modifiers=Button1,clickCount=1] on javax.swing.JButton[,30,10,100x30,alignmentX=0.0,alignmentY=0.5,border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@49d67c,flags=296,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=2,left=14,bottom=2,right=14],paintBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=Parcourir.,defaultCapable=true]
Java Result: 1


voila mon code normalement quand je clique sur le bouton parcourir il doit m'afficher un filechooser et c'est le cas mais une fois je choisis un objet .obj la page se ferme
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package testobject;

import com.sun.j3d.loaders.IncorrectFormatException;
import com.sun.j3d.loaders.ParsingErrorException;
import com.sun.j3d.loaders.Scene;
import com.sun.j3d.loaders.objectfile.ObjectFile;
import java.awt.*;
import java.awt.event.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
// classes Java 3D
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.universe.SimpleUniverse;
import javax.media.j3d.*;
import java.awt.image.*; 
import javax.vecmath.*;
import java.util.*;
import com.sun.j3d.utils.picking.behaviors.*;
import com.sun.j3d.utils.picking.*;
import java.io.FileNotFoundException;

public class Test extends Frame implements MouseListener,MouseMotionListener{

 Canvas3D canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
 SimpleUniverse simpleU= new SimpleUniverse(canvas3D); ;
 private double creaseAngle = 60.0;
  private String filename;



    BoundingSphere behaveBounds = new BoundingSphere();
    JButton parcourir;
    Panel pan;
   

    public Test(){
        super("Test de l'application :p :p" );
        setLayout(new BorderLayout());
        Panel framepane=new Panel();
        framepane.setBackground(Color.cyan);
        this.add(framepane);
        framepane.setLayout(null);
        this.setSize(500,500);
        this.setVisible(true);

       
       Panel panel=new Panel();
      panel.setLayout(new BorderLayout());panel.setBackground(Color.blue);
      panel.setSize(500,500);panel.setLocation(120,40);
      pan=new Panel();pan.setLayout(null);
      pan.setBackground(Color.yellow);
      JSeparator sep = new JToolBar.Separator();
        sep.setBackground(Color.blue);
         sep.setOpaque(true);
      panel.add(pan);
      panel.setLocation(140, 80);
      pan.add(canvas3D);
      pan.setSize(300,300);canvas3D.setSize(300,500);
   


      
      canvas3D.setLocation(pan.getLocation());
      canvas3D.setBackground(Color.red);
      framepane.add(panel);


      //---creation des boutons
       parcourir=new JButton("Parcourir." );parcourir.addMouseListener(this);
       parcourir.setSize(100,30);parcourir.setLocation(30,10);
       framepane.add(parcourir);
         this.setSize(500,500);this.setVisible(true);
         
 }
//--------------------------


   
public void mouseClicked(MouseEvent e){



     if (e.getSource()==parcourir) {
               // try {
                    JFileChooser fd = new JFileChooser("Répertoire de l'image:");
                    fd.setVisible(true);
                    fd.showOpenDialog(null);
                   filename = "C:\\imane\\desktop\\wateringcan.obj";
                            int dim = ObjectFile.RESIZE;
                            ObjectFile f = new ObjectFile(dim,
                                      (float)(creaseAngle * Math.PI / 180.0));
                            Scene s = null;
                                    try
                                    {
                                        System.out.println("bn,");
                                            s = f.load(filename);
                                            
                                    }
                                    catch (FileNotFoundException evt)
                                    {
                                            System.err.println(e);
                                            System.exit(1);
                                    }
                                    catch (ParsingErrorException evt)
                                    {
                                            System.err.println(e);
                                            System.exit(1);
                                    }
                                    catch (IncorrectFormatException evt)
                                    {
                                            System.err.println(e);
                                            System.exit(1);
                                    }
                   

 	}
canvas3D.getView().setBackClipDistance(creaseAngle);
simpleU.getViewingPlatform().setNominalViewingTransform();

 }

 //-------------------------------------
  


public void mouseReleased(MouseEvent e){canvas3D.repaint()	;}


public void mouseMoved(MouseEvent e){}
 public void mousePressed(MouseEvent e) {}

//    public void mouseEntered(MouseEvent e) {}

    public void mouseExited(MouseEvent e) {}

    public void mouseDragged(MouseEvent e) { }

//-------methode main
public static void main(String args[]){
 Test myApp=new Test();
}

    public void mouseEntered(MouseEvent e) {
       canvas3D.repaint();
    }

   


}
Commenter la réponse de bimane
- 13 mars 2013 à 15:03
0
Merci
Comme vous retournez 1 à chaque fois sans afficher la trace d'exception, je ne peux pas savoir ce qui ne va pas. Voilà ce que je vous propose :
- remplacez System.err.println(e); par evt.printStackTrace(); (on verra ainsi d'où vient votre problème)
- un fichier .obj ne contient pas une image mais un maillage, vous devez connaître votre maillage pour savoir comment l'afficher dans le frustum
- utilisez soit simpleU.getViewingPlatform().setNominalViewingTransform() soit canvas3D.getView().setBackClipDistance() et canvas3D.getView().setFrontClipDistance(), passez à ces 2 méthodes les valeurs appropriées au lieu de prendre n'importe quoi, la documentation n'indique pas que vous devriez passer un angle

S'il vous plait, lisez bien la documentation.















T.U.E.R (First Person Shooter créé par Julien Gouesse)
Commenter la réponse de Utilisateur anonyme
- 13 mars 2013 à 15:05
0
Merci
Vous avez également oublié d'ajouter votre maillage au graphe de scène donc il ne risque pas d'être visible.



























T.U.E.R (First Person Shooter créé par Julien Gouesse)
Commenter la réponse de Utilisateur anonyme
- 13 mars 2013 à 15:06
0
Merci
C'est expliqué ici.

s = f.load (airFile);
   tg.addChild (s.getSceneGroup ());



























T.U.E.R (First Person Shooter créé par Julien Gouesse)
Commenter la réponse de Utilisateur anonyme
- 13 mars 2013 à 15:09
0
Merci
Je vous conseille de regarder l'exemple complet et de l'adapter à votre cas comme il vous manque beaucoup de choses.












T.U.E.R (First Person Shooter créé par Julien Gouesse)
Commenter la réponse de Utilisateur anonyme
Messages postés
719
Date d'inscription
lundi 5 décembre 2005
Dernière intervention
8 janvier 2014
- 13 mars 2013 à 15:16
0
Merci
Je me permet d'intervenir parce que c'est la seconde fois qu'un intervenant demande la même chose à l'auteur de ce post : une trace de l'erreur.
Est-ce que l'auteur de ce post peut comprendre qu'il est difficile voire impossible de comprendre une erreur en lisant simplement un morceau de code ?
C'est décourageant parfois
Commenter la réponse de cs_AlexN
0
Merci
J'essaye d'adapter mon code avec celui que tu m'as envoyé mais ma question est celui que tu m'as envoyé est une classe qui hérite de JApllet mais mon application est une JFrame est ce que je dois travailler sur les applets ou quoi ?
Désolée de vous avoir soûlée mais je suis vraiment une débutante et j'aimerai bien connaitre.
Merci
Commenter la réponse de bimane
0
Merci
J'essaye d'adapter mon code avec celui que tu m'as envoyé mais ma question est celui que tu m'as envoyé est une classe qui hérite de JApllet mais mon application est une JFrame est ce que je dois travailler sur les applets ou quoi ?
Désolée de vous avoir soûlée mais je suis vraiment une débutante et j'aimerai bien connaitre.
Merci
Commenter la réponse de bimane
0
Merci
J'essaye d'adapter mon code avec celui que tu m'as envoyé mais ma question est celui que tu m'as envoyé est une classe qui hérite de JApllet mais mon application est une JFrame est ce que je dois travailler sur les applets ou quoi ?
Désolée de vous avoir soûlée mais je suis vraiment une débutante et j'aimerai bien connaitre.
Merci
Commenter la réponse de bimane

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.