7
votes

Java NetBeans remplace la méthode de peinture () dans un JPanel

salut je suis un programme de nouveaux nouveaux - Je veux développer une interface graphique d'un programme Java à l'aide de NetBeans IDE

Utilisation de NetBeans Gui Builder,
Tout d'abord, je crée un nouveau formulaire de jframe
Ensuite, j'ajoute un JPanel de la barre d'outils / Palette

question est,
Comment puis-je remplacer la fonction peinture () du nouvellement créé jPanel ?

Je veux dessiner un arrière-plan et certaines sphères à l'intérieur du jPanel ,
J'ai essayé d'utiliser getgraphics () fonction pour peindre et dessiner, il fait le travail, mais il ne tirera plus lorsque j'appelle repeindre ()

devrais-je créer une nouvelle classe d'implémentation jPanel ou jComponent , avec My peinture () fonction, à la place?
(Si tel est le cas, comment puis-je le faire avec NetBeans Gui Builder?)

Question similaire:

Comment utiliser JPanel avec peinture (ou repeindre)

(mais il n'utilise pas NetBeans Gui Builder)


0 commentaires

3 Réponses :


1
votes

Vous ne devez pas implémenter de la peinture, si je comprends bien, car il est appelé peinture, peintchildren et peinture compromis. Utilisez de la peinture si vous souhaitez gérer la bordure et les enfants, avec un composant, mais il n'est pas recommandé. Utilisez PaintComponent à la place.


0 commentaires

9
votes

La manière habituelle de le faire consiste à créer votre propre sous-classe jPanel (E.G. myjpanel ) et implémentez la méthode peinture ()

Après avoir implémenté cette classe, passez à votre formulaire, sélectionnez le panneau, puis utilisez "Code de création personnalisé" dans l'onglet "Code" des propriétés du panneau pour créer une instance de myjpanel . de jPanel

Code de création personnalisé

Ceci a le léger inconvénient que vous devrez jeter la variable d'instance à myjpanel à chaque fois que vous souhaitez accéder à des méthodes définies dans myjpanel mais pas dans JPANEL . Si vous n'avez jamais besoin de faire cela, c'est la méthode la plus rapide.

Si vous souhaitez accéder à des méthodes supplémentaires dans votre classe de panneaux (sans la modification de la variable d'instance à chaque fois), il est plus facile de supprimer JPanel existant et d'ajouter un «haricot» à l'aide de la nouvelle classe.

Ceci est fait en cliquant sur le bouton "Choisissez Bean" dans la palette:

Choisissez le haricot

Une fois que vous avez cliqué sur OK, vous pouvez placer le panneau sur votre formulaire et NetBeans créera une variable d'instance du type myjpanel (au lieu de jpane) et vous pouvez accéder à toutes les méthodes définies dans cette classe. Notez que la classe doit être compilée avant de pouvoir l'ajouter de cette façon!


6 commentaires

"Créez votre propre jPanel sous-classe (par exemple myjpanel ) et implémentez la peinture () méthode là-bas." Ceci est Pas AWT mais Swing et cette méthode doivent être PaintComponent (graphiques) . En outre, si aucun composant n'est dans le panneau «peint» sur mesure, il est plus simple de dessiner à un bufferedimage et d'afficher dans un jlabel .


@Andrewthompson: la question était de savoir comment faire cela. Et mon explication convient également lorsque vous souhaitez remplacer toute autre méthode dans une classe Swing. Il est sage ou non (ou utile) de remplacer la méthode peinture () n'est pas pertinente ici - pas besoin de bownvote


"Pas besoin de bowervote" Je ne l'ai pas, espérant que vous amélioreriez la réponse (très bonne qualité). OTOH, argumenter à ce sujet .. -1


"Bien que la question était de savoir comment faire cela" donc si la question était "comment puis-je me tirer dessus au pied?" - Vous fourniriez des instructions?


@ Andrewthompson: N'hésitez pas à fournir une meilleure réponse.


@ADEWTHOMPSON " En outre, si aucun composant n'est dans le panneau" peint "sur mesure, il est plus simple de dessiner à un bufferedimage et d'afficher dans un jlabel . < / I> "Merci de le pointer, voudriez-vous me donner des instructions à ce sujet? :RÉ



7
votes

salut je suis un programmeur de débutants que je veux développer une interface graphique d'un programme Java Utilisation de NetBeans IDE P>

Salut! Depuis que vous êtes un programmeur débutant, utilisez Netbeans comme éditeur de texte régulier. Pour le faire, créez des classes de java plaines au lieu de formes et faites-vous vous coder. La raison est que vous devez d'abord comprendre Swing, avant de faire face à une approche Netbeans. P>

Devrais-je créer une nouvelle classe mettant en œuvre JPanel ou JComponent, avec mon Fonction de peinture personnalisée (), à la place? P> blockQuote>

Vous ne pouvez certainement pas prolonger JPanel ou JComponent, car ils ne sont pas des interfaces. P>

Si vous insistez sur l'utilisation de NetBeans Matt GUI Editor, puis créez un nouveau formulaire JPanel et la remplacement de la méthode PaintComponent Code>. P>

    add(new MyNewJPanel());
    pack();


0 commentaires