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?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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.
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.