Question existencielle Pour comprendre JAVA

Fermé
max - Modifié par max le 19/02/2013 à 22:15
max94 Messages postés 4 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 20 février 2013 - 20 févr. 2013 à 00:14
Bonjour,

Je me mets enfin au java apres des années et des années de VB / VBA .

J'ai quelques questions et j'aimerais beaucoup qu'on m'aide à comprendre afin d'avoir des regles de bonnes conduites de codes :),


1)Venant directement du VBA, je copiais toutes mes valeur dans les feuilles , maintenant quel est l'équivalent en JAVA , est ce lestockage dans des tableaux ?


2) Je souhaite monter un projet d'affichage de résultat en direct de l'activité de mon équipe , aussi je reflechis à comment fait-on cela en Java ^^ .
Si quelqu'un pouvait m'aider à comprendre la démarche et me reprendre si mon raisonnement est faux .
_

Pour moi :
Je vais devoir creer une classe de la fenetre (frame ?) , ensuite creer les boutons (sont ils des objets ?) , ensuite creer l'affichage (a travers des objets ou jlaffiche dans la classe principale ?)
En fait je ne comprends pas trop par rapport au VBA ou on creait chaque fois un SUB(procédure) pour tout , comment ça marche en JAVA , il faut creer un objet à quel moment ? une classe à quel moment ? .
Je suis un peu perdu dans ma logique.
.
.


Je conçois que mes questions peuvent paraitre bete, mais cela me permettrait de démystifier le langage.

Merci d'avance
Cordialement,
Max

A voir également:

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
19 févr. 2013 à 22:25
1) je ne connais pas VBA et du coup je ne comprends pas ta question...

2) "un projet d'affichage de résultat en direct de l'activité de mon équipe"
C'est pas très clair,de quel genre de résultat tu parles ?

* "Je vais devoir creer une classe de la fenetre (frame ?)"
Une JFrame si tu veux faire du Swing, oui, c'est la base du GUI.

* "creer les boutons (sont ils des objets ?)"
Tout est objet en Java (ou presque), c'est le principe même de la POO...

* "il faut creer un objet à quel moment ? une classe à quel moment ?"
Tu as un point d'entrée, la méthode public static void main(String[] args)
Les instructions dans cette méthode sont exécutées les unes à la suite des autres, donc quand tu as besoin de créer une fenêtre tu la crées, c'et à dire que tu crées tous les objets qui la constitue, puis tu l'affiches.

Mais là tu pars de très très loin, il faudrait déjà voir ce qu'est la programmation objet avant de te lancer dans la programmation Java ou encore dans Swing !
0
Merci pour ta réponse rapide ,

Pour la question que tu ne comprends pas soit (la 1 ) , bah mes extractions venant des BDD je les stockais sur feuille , la quel est l'équivalent en JAVA est-ce du stockage dans des tableaux, ou plus simplement dans quoi stocke tu tes extract toi si tu en fait ?

2) Concernant le genre de resultat, c'est une extract d'une BDD qui me permet d'afficher une activité par exemple donc ça serait un temps ici.



"donc quand tu as besoin de créer une fenêtre tu la crées, c'et à dire que tu crées tous les objets qui la constitue, puis tu l'affiches. "
ça veut dire que pour toute fenetre ou nouvelle affichage une nouvelle classe et de nouveaux objets ?

Si c'est cela ça me parait deja plus clair :-)
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
19 févr. 2013 à 22:53
Java permet de manipuler les BDD donc tu fais des requêtes (SQL en général) et tu traites directement les données récupérées. Après pour ce traitement il y a toute une flopée d'outils en Java qui permettent de faire tout et n'importe quoi selon les besoins...

Comme tout est objet, une fenêtre c'est déjà un objet (un Container) dans lesquels tu mets un ensemble d'autres objets (des Component), ça permet d'utiliser des méthodes diverses pour gérer l'affichage (dimensions, couleurs, etc.) et bien sûr les évènements (quelle action effectuer quand on clic sur un bouton par exemple).
0
max94 Messages postés 4 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 20 février 2013
Modifié par max94 le 19/02/2013 à 23:02
D'accord, mais alors si chaque fenetre est une objet (et donc avec une classe comme "moule") cela veut dire qu'on fait une classe comme un "main principale" dans un seul fichier et qu'a partir de cela on creer un objet pour les boutons ,l'objet de connexion ,l'objet de tri des données etc... ? et que si on veut passer sur une autre fenetre on passe sur un "new" objet ?

Les Set et GET sont les methodes que l'ont appellera pour consulter les infos pour eviter de voir directement les variables des classes ,c'est ça ?
Du mal à m'habituer à tout ces procédures intermédiaires pour consulter ou faire tel ou tel choses mais que je comprends nécessaires (encapsulation )

Merci
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
19 févr. 2013 à 23:08
Fort heureusement toutes ces classes existent déjà, il ne reste plus qu'à les utiliser !
Donc une fenêtre est un objet de la classe JFrame (par exemple), les boutons sont des objets de la classe JButton, si tu veux des onglets tu utiliseras des objets de la classe JTabbedPane, etc.

À ce niveau là, tu n'as quasiment plus besoin de créer tes propres classes, du moins pas du départ avec des get ou des set, on utilise intensivement l'héritage, et seules quelques méthodes sont à éditer.
0
max94 Messages postés 4 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 20 février 2013
19 févr. 2013 à 23:12
D'accord je comprends mieux , C'est sympa de m'accorder un bon de ton temps .

Je suis entrain de me documenter deja sur l'heritage qui me parait compréhensible mais maintenant la pratique car je me rends compte que c'est une notion indispensable tout comme le polymorphisme.


La par exemple, je ne comprends pas pourquoi le GET et le SET ne serait pas utilisé, si vous me dites que c'est inutile là , quand est ce qu'il protege une classe et quand est ce qu'on en a pas besoin ?
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
19 févr. 2013 à 23:23
Dans la mesure où la classe est déjà faite, la classe est déjà protégée, donc toi tu vas utiliser les méthodes existantes qui sont déjà sûres. Donc il n'y a pas à faire plus d'encapsulation.
Après là je parle surtout dans l'interface graphique, mais si ton application doit manipuler des types de données spécifiques à ton programme, là il faudra effectivement faire des classes bien propres avec tous les get/set nécessaires. Mais tu n'auras pas à faire cela sur les objets graphiques.

Voici un petit exemple d'application (une version améliorée de HelloWorld), j'utilises quelques méthodes get et set, mais ce sont des méthodes des classes graphiques déjà protégées.
PS. Tu n'es pas obligé de tout comprendre d'un coup ;-)

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class HelloWorld
{
    public static void main(String[]args)
    {
        final JFrame frame = new JFrame("HelloWorld");
        frame.setLayout(new GridLayout(3,1));
        
        frame.add(new JLabel("Quel est votre nom ?"));
        
        final JTextField name = new JTextField();
        frame.add(name);
        
        final JButton hello = new JButton("Bonjour");
        frame.add(hello);
        
        hello.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                JOptionPane.showMessageDialog(frame, "Bonjour "+name.getText());
            }            
        });
        
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}
0