OVH Cloud OVH Cloud

Préférence...

1 réponse
Avatar
tony
salut

Je vois souvent du code java qui met les boutons,champs de texte... à
l'extérieur de la classe
et d'autre fois tous se fait à l'intérieur du constructeur

il y a t'il une façon qui est meilleur que l'autre?


merci

1 réponse

Avatar
Hervé AGNOUX
tony wrote:

salut

Je vois souvent du code java qui met les boutons,champs de texte... à
l'extérieur de la classe
et d'autre fois tous se fait à l'intérieur du constructeur

il y a t'il une façon qui est meilleur que l'autre?



Théoriquement, depuis un constructeur, il vaut mieux éviter d'appeler des
méthodes non finales de sa propre classe. Donc cela limite vite les
possibilités. Certes et bien sûr, comme swing soi même respecte très peu
cette règle de prudence, pourquoi être plus royaliste que le roi ?...

Par ailleurs, savoir s'il faut réaliser un composant uniquement par des
appels extérieurs, ou s'il faut définir une classe pour lui, est souvent
affaire de gout.

Il y a tout de même un point au moins qui oblige à passer à une classe
spéciale, qui est si le composant a un graphisme spécial. En effet les
graphismes ne peuvent se définir, ou se redéfinir, que dans le cadre de la
méthode paint et ses dérivés.

Par exemple, pour faire une bouton avec des bords rouges et le label "toto",
tu n'as pas besoin de te créer un bouton à toi : un JButton fera très bien
l'affaire. Par contre, si, dans ton bouton, tu veux faire un fond en
dégradé, alors tu ne le pourras pas. Tu pourrais, à la limite, faire ce
dégradé de l'extérieur, mais il risque de mal suivre le comportement de la
fenêtre. La seule façon est de créer une classe spéciale pour cela, et
redéfinir la méthode paintComponent.


--
Hervé AGNOUX
http://www.diaam-informatique.com