ge17
Messages postés15Date d'inscriptionmercredi 18 juin 2008StatutMembreDernière intervention30 juillet 2008
-
20 juin 2008 à 10:04
ge17
Messages postés15Date d'inscriptionmercredi 18 juin 2008StatutMembreDernière intervention30 juillet 2008
-
26 juin 2008 à 08:55
Bonjour
Voilà j'essaye de compiler ma class "Menu" où se trouve cette partie de code :
Code :
public class GestionImprimer implements ActionListener /**Evènement du sous-item 'internet'**/
{
/**
* Methode pour lancer L'impression
* @param e ActionEvent
*/
public void actionPerformed(ActionEvent ev) {
/**Appel de la fonction "Exec" qui a été précedement déclaré e**/
PrinterJob pj = PrinterJob.getPrinterJob();
pj.setPrintable(Page3.this);
if(pj.printDialog()){
try
{
pj.print();
}
catch (Exception PrintException)
{
}
}
Variable.out.println("L'impression à été séléctionnée");
}
}
A la base, ce programme s'exécutait dans la class "Page3" et imprimait ce qu'affichait la class "Page3" mais je souhaiterais maintenant l'exécuter à partir de la class "Menu" et qu'il imprime toujours ce qu'affiche la class "Page3".
Seulement Voilà, le debugger m'affiche ce message :
Code :
D:\program files\Projet TPS BNG\guillaume\BNG\src\BNG\Application\Menu.java:282: not an enclosing class: BNG.Application.Page3
pj.setPrintable(Page3.this);
Je pense qu'il faut créer une variable dans "Page3" qui fasse le lien entre les deux class mais je ne sait pas comment m'y prendre.
Si quelqu'un avait une idée, elle serait la bienvenue.
indiana_jules
Messages postés750Date d'inscriptionmardi 9 mars 2004StatutMembreDernière intervention23 décembre 200822 24 juin 2008 à 13:34
Salut
Le truc c'est que tu appelles la classe Page3 (et pas une instance), et que tu essais d'accéder à thispour pouvoir l'imprimer. De ce fait, le compilateur pense par défaut qu'il s'agit d'une classe "englobée" (et je dirais même statique, mais là, je ne suis pas sûre).
Du coup, il faudrait créer un constructeur (celui par défaut par exemple) qui initialise ta classe Page3, et que lorsque tu veux l'imprimer, tu crées soit une nouvelle instance, soit tu l'affectes dans une variables afin d'éviter une nouvelle génération (selon la complexité, ce dernier point est important)
ge17
Messages postés15Date d'inscriptionmercredi 18 juin 2008StatutMembreDernière intervention30 juillet 2008 26 juin 2008 à 08:55
j'ai essayer ce que tu m'a dis d'ajouter à : pj.setprintable(...). Mais j'ai du complété la class "Page3" avec le paramètre présent dans le constructeur page3 de la class "Page3", ce qui donne au final :
pj.setPrintable(new Page3(retouracceuil));
puisque mon constructeur page3 est équivalent à :
/**
* Méthode constructeur de Page3
* @param a Acceuil
*/
public Page3(Acceuil a) {
retouracceuil = a;
Le projet compile et s'exécute normalement et lorsque je fais l'action d'imprimer et bien je me retrouve avec 4 feuilles blanches. donc toujours impossible d'imprimer ce qui se trouve dans la class "Page3". Est ce que tu vois d'où peut venir le problème..