2009-06-17 4 views

Répondre

2

D'abord le JPanel avec une image de fond est facile. Dérivez votre propre panneau de JPanel, ajoutez un champ d'image. Remplacer la méthode paintComponent() pour faire un drawImage() en utilisant l'image stockée dans le champ.

Ensuite, les boutons. Dérivez votre propre bouton, ajoutez une image dans le constructeur et utilisez setIcon() pour le mettre sur le bouton. utilisez setPressPressIcon(), ... et ainsi de suite pour ajouter des images supplémentaires pour les différents états des boutons.

Enfin la mise à l'échelle, ce n'est pas clair pour moi ce que vous voulez. Le drawImage() peut mettre à l'échelle l'image, donc ce n'est pas un problème. Vous pouvez positionner les boutons lorsque le JPanel est redimensionné en ajoutant un écouteur. Vous pouvez ensuite repositionner les boutons. Les valeurs x, y doivent être calculées en% de la largeur et de la hauteur du panneau. Vous pouvez même redimensionner les boutons afin que le rapport largeur/hauteur soit le même que le ratio des panneaux.

Alors oui, il y a une façon propre de le faire.

+0

Pourquoi utiliser un écouteur pour repositionner le bouton? Le simple fait d'utiliser le LayoutManager approprié prendra soin de cela pour vous et évitera les problèmes de redessiner désagréables – tddmonkey

+0

En raison de la mise à l'échelle. Je suppose que les boutons sont quelque peu liés à l'image d'arrière-plan et devraient être ajustés par rapport à la taille de l'arrière-plan. Ceci est relativement facile à accomplir en utilisant un écouteur à la taille du panneau d'arrière-plan et en recalculant la position des boutons. Je ne peux pas immédiatement penser à un gestionnaire de disposition faisant cela. Mais j'admets que mon hypothèse peut être fausse, et dans ce cas, un gestionnaire de disposition pourrait être une meilleure solution. –

0

D'abord, le JPanel avec une image d'arrière-plan est facile. Dérivez votre propre panneau de JPanel, ajoutez un champ d'image. Ce que je comprends mais quand essayez de faire ce 2 pas ses problèmes d'affichage

Deuxième Surchargez la méthode paintComponent() pour faire un drawImage() en utilisant l'image stockée dans le champ.

Pouvez-vous me montrer un exemple?

Questions connexes