J'ai utilisé le printComponent
qui a été montré dans une autre question. Il fonctionne très bien pour imprimer un JPanel
si j'ajoute d'abord ce JPanel
à un JFrame
et dessine ce JFrame
à l'écran. Mais si je ne fais pas cela avant d'imprimer, je reçois une page blanche imprimée. Pourquoi est-ce?Puis-je utiliser printComponent sans avoir à dessiner un composant à l'écran en premier?
Répondre
parce que le panneau que vous souhaitez dessiner a une taille initiale de 0,0. Une fois ajouté à un conteneur avec un gestionnaire de disposition et affiché, il obtient sa taille "normale".
est-ce que je peux définir ceci pour avoir une taille? J'ai essayé de donner au panel une taille préférée, mais cela n'a pas fonctionné. –
try setSize (largeur int, hauteur int). Je ne suis pas sûr que cela fonctionnera puisque Java ne peut toujours pas dessiner le composant mais vous pouvez essayer. –
J'ai code utilisé comme suit pour créer un BufferedImage sur un panneau qui ne sont pas visibles sur le châssis:
JPanel panel = new JPanel();
... // add components
panel.setSize(300, 300);
panel.doLayout();
- 1. Quel composant dois-je utiliser pour dessiner un dendrogramme en Java?
- 2. Comment créer un formulaire dans Rails sans avoir à utiliser form_for et une instance de modèle?
- 3. Comment tester sur l'IPhone sans avoir accès à un?
- 4. Un fichier .jar exécutable peut-il être appelé sans avoir à utiliser son chemin d'accès complet?
- 5. comment distribuer un composant Flash à utiliser avec MTASC?
- 6. Comment exécuter runonce sans avoir à se connecter à l'administrateur
- 7. Ajout d'un composant enfant à un JButton
- 8. Calculer le hachage sans avoir le tampon entier en mémoire à la fois
- 9. Puis-je renvoyer un objet modifié à Controller depuis ma vue fortement typée sans avoir à utiliser Request.Form?
- 10. Comment dessiner un NSString à un angle?
- 11. hiberner un à un ou un composant?
- 12. Puis-je avoir un Treeview sans l'arborescence?
- 13. Java: comment ajouter un raccourci à un composant
- 14. aps_developer_identity.cer à p12 sans avoir à exporter à partir de Key Chain?
- 15. en cours d'exécution msbuild sans avoir installé VS
- 16. y compris les fichiers sans avoir à spécifier $ _SERVER [ « DOCUMENT_ROOT »]
- 17. Puis-je utiliser .net 4.0 beta sans avoir vs2010?
- 18. Comment utiliser un composant COM de VB.NET?
- 19. référence un contrôle à l'intérieur d'un composant en flex
- 20. Etes-vous autorisé à avoir une entrée sans valeur?
- 21. Puis-je avoir un glisser/déposer jquery à 2 colonnes triable sans jqueryUI?
- 22. Ajout d'effets à un composant personnalisé flex
- 23. Dessiner une ellipse sans méthode OnPaint
- 24. Passer des informations à un constructeur sans utiliser de paramètre en C#
- 25. DOS: comment exécuter un batch sans avoir à vous connecter sur un partage?
- 26. Enregistrement des enregistrements associés sans enregistrer l'enregistrement référencé en premier
- 27. Un moyen facile de créer un formulaire pour envoyer un courriel à SharePoint sans utiliser l'infopath
- 28. Comment dessiner un point à l'intérieur d'une instance de UIImageView?
- 29. Comment puis-je dessiner une ligne pointillée à partir de la méthode paint sur un composant JComponent?
- 30. Comment alias-tu une classe python pour avoir un autre nom sans utiliser l'héritage?
Anton, qu'est-ce que tu veux dire dessiner un objet graphique? désolé je suis un noob à ce truc graphique. Savvas Dalkitsis, Si je définissais une taille préférée pour le panneau, est-ce que cela le ferait fonctionner? –
La taille préférée est une suggestion au gestionnaire de mise en page. Donc ça ne marcherait pas. Aussi à propos de l'objet graphique, vous pouvez l'obtenir à partir d'un composant en appelant par exemple new JPanel(). GetGraphics(); Lorsque vous travaillez avec des composants swing, vous pouvez le transtyper en toute sécurité sur un objet Graphics2D qui fournit plus d'outils. Lire le tutoriel Java pour plus d'informations sur l'API Java2D –
Je suis un peu confus maintenant sur ce qui cause votre problème. Voulez-vous dire que dessiner le JFrame puis ajouter le JPanel n'affiche rien, même si vous le repeignez après avoir ajouté le JPanel? – Anton