Page d'accueilFindIt !Contact Cahier Swing

Cahier Swing

 Forum Cahier Swing

Ce forum est dédié au Cahier du Programmeur Swing et Sweet Home 3D son étude de cas.
Utilisez-le pour toute demande d'information supplémentaire ou pour toute suggestion au sujet de cet ouvrage et de cette application.
Pour les informations relatives à l'ouvrage Bien programmer en Java 7 et au Cahier du programmeur Java, merci d'utiliser le forum qui leur est dédié.
Vous pouvez consulter ces forums librement. Pour y participer, inscrivez-vous tout d'abord.

Sujets Messages récents Identification Inscription
Messages du sujet Problème de type (JFrame) en modifiant le code de VE (Chapitre 2 : p. 61)

nobelius

Ville : Cahors || Rennes
Membre depuis : 21 juil. 2007
Messages : 1
 23 juil. 2007 à 18:44
Bonjour,
je commence à lire et tester les exemples du livre, or je bloque sur une partie de code du chapitre 2 p.61 pour modifier l'action listener dans getAboutMenuItem:
La ligne <<JOptionPane.showMessageDialog(SweetHome3DSwingDraft.this,"Sweet
Home 3D Draft 2006","About",JOptionPane.PLAIN_MESSAGE); >> n'est pas acceptée par Eclipse car SweetHome3DSwingDraft.this ne semble pas pouvoir être acceptée comme un objet de type Component (type requis par showMessageDialog).

J'avoue moi même ne pas comprendre en quoi SweetHome3DSwingDraft.this est un component bien que cet objet possède des attributs héritant d'un Component.

J'espère que vous comprendrez pourquoi le code de la page 61 ne semble pas fonctionner pour moi, n'ayant pas trouvé de modification dans la partie erratum du forum je ne vois pas pourquoi elle ne fonctionnerait pas pour moi...

En vous remerciant d'avance pour votre aide.
---
Vincent

Manu

Ville : Paris / France
Membre depuis : 29 avr. 2003
Messages : 394
 23 juil. 2007 à 19:40
Ce problème est du au fait qu'entre la version 1.1.0 de VE que j'ai utilisée au cours de la rédaction du livre et la version 1.2.0 que vous utilisez probablement aujourd'hui, les créateurs de VE ont changé la classe qui est créée quand on choisit Java>Swing>JFrame Visual Class puis le style Application :
- dans VE 1.1.0, ce choix créait une sous-classe de JFrame, avec une méthode main, donc l'objet SweetHome3DSwingDraft.this était bien un composant,
- dans VE 1.2.0, ce choix crée une classe simple avec une méthode main, donc l'objet SweetHome3DSwingDraft.this n'est plus un composant. Il suffit de remplacer SweetHome3DSwingDraft.this par getJFrame().
On peut le deviner en observant l'implémentation proposée par défaut de getAboutDialog, qui utilise cette même fenêtre à l'appel du constructeur de JDialog :
  private JDialog getAboutDialog() {
    if (aboutDialog == null) {
      aboutDialog = new JDialog(getJFrame(), true);
      aboutDialog.setTitle("About");
      aboutDialog.setContentPane(getAboutContentPane());
    }
    return aboutDialog;
  }
mais je comprends qu'à ce stade du livre, ce soit difficile à deviner ! ;-)

Bonne lecture
---
Manu (moderator/modérateur)


Page d'accueilFindIt !ContactDébut de la page

© Copyrights 1997-2023 eTeks - Tous droits réservés

Cahier Swing