IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

[Optimisation] Création d'une form


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Caxton
    Homme Profil pro
    Sans
    Inscrit en
    Janvier 2005
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Janvier 2005
    Messages : 586
    Par défaut [Optimisation] Création d'une form
    Bonjour tout le monde,

    Voilà déjà un ans que je n'ai pas touché au Java. Punaise ça passe vite !
    J'ai donc gardé sous le coude, pendant cette année mes idées afin de les codés dans un moment de détente, moins soumis à la pression du quotidien.

    Me voilà donc pris l'envie de déterrer un de mes vieux projet, qui à l'époque devais resté sur serveur en une application intuitive et propriétaire (un exécutable quoi). Devant le pied au mur, j'installe NetBeans qui à migré à la version 6.8 déjà ! Je suis retournée sur le forum, cherché quelques sources et à l'époque Tchize ma beaucoup aider et je l'en remercie. J'ai attaqué la création d'une form vide. Et la... C'est le drame !

    L'appli est... comment dire... vide

    Je me suis fendu d'une icône, en vue de me rappelé comment la placé sur une form, retouché quelque peu le code pour y ajouter le nom dans la barre en haut. Miracle, ça fonctionne ! J'ai donc pas trop perdu en un ans ! Ouf de soupir !

    Cependant, en relisant mon code, je me suis rendu compte d'une chose. J'écrivais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    import java.awt.Image;
     
    public class MainForm extends javax.swing.JFrame {
        private Image image;
     
        /** Creates new form MainForm */
        public MainForm() {
            initComponents();
            initForm();
        }
     
        @SuppressWarnings("unchecked")
        // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
        private void initComponents() {
     
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
     
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 400, Short.MAX_VALUE)
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 300, Short.MAX_VALUE)
            );
     
            pack();
        }// </editor-fold>   
     
       //Initialisation personnelle des carractéristiques de la Form
        private void initForm() {
            //Modifier l'icône de l'application
            String chemin = "Graphik/Icone.png";
            image = java.awt.Toolkit.getDefaultToolkit().getImage(getClass().getResource(chemin));
            this.setIconImage(image);
     
            //Changer le titre de l'application
            this.setTitle("jTestAppli-1 | V 1.0 | Microbulle");
        }
     
    public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new MainForm().setVisible(true);
                }
            });
        }
    }
    Le programme par défaut appel la méthode suivante initComponents(); qui est déclenché en public. J'ai ajouter en dessous mon initialisation, mais elle doit resté en private.

    Déjà est-ce bien une méthode ?
    Ensuite est-ce logique qu'à la compilation on laisse un appel sur du private à partir du public ?
    Existe-il une autre façon de codé cela plus propre ? (Quand j'entends par propre, c'est à dire moins orienté public -> private pour resté dans le private -> private et si c'est possible bien sûr).

    Je tiens à préciser que je demande afin de m'améliorer. Car la suite risque d'être tendu !
    Merci pour vos indications, car je sait qu'il y en aura.

    Microbulle

  2. #2
    Membre chevronné
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Par défaut
    Bonjour,

    Déjà est-ce bien une méthode ?
    Toutes les fonctions qui se trouvent dans une classe sont des méthodes, elles peuvent être public (accessibles dans d'autres classes), private (accessibles uniquement dans la classe courante) ou protected (accessibles dans la classe courante et toutes les classes héritant de la classe courante).

    Ensuite est-ce logique qu'à la compilation on laisse un appel sur du private à partir du public ?
    Oui. La méthode public appelante est le constructeur. Il arrive régulièrement d'initialiser des attributs private à l'intérieur d'une méthode public.

    Existe-il une autre façon de codé cela plus propre ? (Quand j'entends par propre, c'est à dire moins orienté public -> private pour resté dans le private -> private et si c'est possible bien sûr).
    De toutes manières, il va bien falloir appeler un jour les méthodes private, donc elles seront appelées dans des méthodes public. Ou alors il faut que ces méthodes soient public. Cependant, un init() est généralement private et appelé dans le constructeur qui lui est public (pas le choix pour l'appeler via un main par exemple, sauf si le main est une méthode de la classe courante).

  3. #3
    Membre éclairé Avatar de Caxton
    Homme Profil pro
    Sans
    Inscrit en
    Janvier 2005
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Janvier 2005
    Messages : 586
    Par défaut
    Je comprends mieux!
    Un grand merci pour cette réponse claire et instructive.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création d'une Form dans un thread (form dynamique)
    Par franco263 dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/06/2007, 17h33
  2. Detecter création d'une forme
    Par JustMe dans le forum Langage
    Réponses: 2
    Dernier message: 15/02/2006, 00h48
  3. Detecter création d'une forme
    Par JustMe dans le forum Bases de données
    Réponses: 2
    Dernier message: 14/02/2006, 23h18
  4. Réponses: 1
    Dernier message: 09/02/2006, 10h11
  5. [C++] débutant création d'une form
    Par TERRIBLE dans le forum C++
    Réponses: 7
    Dernier message: 10/10/2005, 12h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo