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

AWT/Swing Java Discussion :

conseil de layout


Sujet :

AWT/Swing Java

  1. #1
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    853
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 853
    Points : 929
    Points
    929
    Par défaut conseil de layout
    salut

    je dois convertir un programme access en java

    voici l'interface fait en access


    voici maintenant celle en java



    je cherche le ou les layout les plus adéquats

    j'avais pensé à un grid layout
    peut-être un box layout pour les jlabel et jtextfield pour les composant supérieur gauche

    n'hésitez pas si vous avez de meilleur idée

    merci

  2. #2
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Bonjour,

    Personellement je pencherais pour le GridBagLayout bien qu'il soit relativement complexe, il permet de créer des interfaces complexes et permet de positionner les composants avec une très bonne précision.
    Mais ça reste mon avis personnel...

    Lien : Comment utiliser le GridBagLayout ?

    @+


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Moi je pense qu'il faut que tu choisisses la solution de plusieurs panneaux imbriqués, chacun avec leur layout différent, adapté à leur propos.

    Pour l'ensemble, c'est pas très facile car cela ressemble plus à un sac de noeuds, donc, effectivement, la solution du GridBagLayout irait peut être bien... Dois-tu reproduire la version access à l'identique strict ??
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Pour ce qui est des label, textfield, j'utilise un boxlayout comme tu l'as dit.
    Ensuite, j'utilise des borderlayout et flowlayout.
    En général je m'en sors avec la combinaison des trois.

  5. #5
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    L'utilisation d'un LayoutManager unique permet d'éviter des défauts d'alignement comme on en voit dans l'interface Access, donc je pencherais plutôt pour un GridBagLayout.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  6. #6
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    PErso j'y irais à gros coup de FormLayout ou de GroupLayout en utilisant netbeans et matisse (enfin solution élégante pour la première et de glandu pour la seconde, mais au moins ces deux layouts gèrent les BaseLines et permettent d'avoir un résultat plus que propre, et ceci sans se prendre outre mesure la tête).

    Mais avant tout j'essairai surtout de repenser la dispo des éléments car là c'est plutôt foutoirifiant dans la version Access.

    Si j'ai un peu de temps ce soir (c'est a dire si j'ai un delta entre le retour du taf et l'apéro j'essaierais de m'y mettre pour faire quelquechose de relativement équilibré)
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  7. #7
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    si je peut donner mon avis :-)

    avec un GridBagLayout tu peut faire les deux dessins tres simplement (yen a deja un ki la dit).

    et je suis d'acord avec celui qui dit que c'est pas equilibrer. ya pas de regles mais ya quand meme des trucs qui revienne souvent. une chose a garder en tete quand tu develope une application c'est que le but c'est avoir la plus grande facilite (et donc rapidite) pour l'utilisateur final.

    par exemple ton numero de transit. a ta place je mettrai un JFormattedTextField et un MaskFormatter (par ex "###-#####-###"). C'est plus facile pour l'utilisateur d'entrer des valeurs dans un champ que dans 3.


    vois une interface comme une page d'un livre. ca commence en haut a gauche et termine en bas a droite. le bouton terminer au lieu de le mettre au centre je le mettrai tout a fait a droite. (attention si tu dois aussi avoir une application pour les arabes)

    les boutons heure debut et fin sont lier avec quoi?

    le Checkbox partage guichet n'a pas sa place la non plus. tu peux pas regrouper avec le reste des champs en haut?

    l'espace entre les RadioButtons dans tes 3 "sous panels" sont pas les memes. Dans 'type de guichet' tu as 3 radiobuttons et dans 'envelope' aussi. Mais l'espace entre ces radiobutton dans les 2 cas n'est pas le meme. J'ai comme l'impression que l'interface utilise deja la baseline pour les couple label - textfield en haut. le GBL supporte aussi la baseline :-)

    enfin je donne juste mon avis. c'est une jolie interface. y'a juste moyen de faire mieux.

  8. #8
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    853
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 853
    Points : 929
    Points
    929
    Par défaut
    aucunement besoin que ça soit identique à la version access... c'est pour ça que l'ébauche en java n'est pas identique... elle est déjà mieux

    en pensant, j'utilise java 1.4

    j'ai remplacé les JTextField par un JFormattedTextField pour le numéro de transit

    l'usager entre un numéro de transit
    si les informations sont trouvé, elles s'affichent dans les JTextField.
    il doit ensuite cliquer sur heure début, ensuite il entre les autre information, cliquer sur heure fin et finalement sur terminé

    j'ai faiit l'ébauche avec Netbeans 5.5

    pour ce qui est des radio button, effectivement n'est pas identique.
    surement dû au fait que le layout est à : free design

    quelques amélioration apporter


    je vais regarder si ça les déranges que j'enlève le bouton heure fin... et que l'action soit fait par terminer....

  9. #9
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Salut,

    Tel que tu décris les boutons Heure Début et Heure Fin tu peux en effet les éliminer de ton formulaire. Voici un essai rapide de la manière dont tu pourrais le réorganiser. Je me suis sûrement trompé sur des groupements car je ne connais pas le domaine métier de ton application mais ça devrait te donner une idée.

    En gros, les groupements sont réalisés par alignement et avec des espaces vides. Les lignes créés par des TitleBorder sont inutiles, ajoutent du bruit visuel et te forcent à créer des espaces vides inutiles.

    Il y a des choses sur lesquelles je retravaillerais (le "Nombre d'enveloppes" qui devient ici un champ en face de "Enveloppes :", les deux champs pour "Manquante" et "Surplus" et enfin la date et l'heure de collecte pourraient devenir un seul groupe comme "Enveloppes", "Guichet" et "Pause").



    Pour gérer l'équivalent du bouton "Heure Début", tu pourrais tout désactiver sauf le champ "Numéro Transit". Une fois un numéro valide saisi, tu actives tout.

    Ce layout a été fait avec NetBeans 5.5 mais ne marchera pas sous Java 1.4. Cela dit, l'excellent FormLayout te permet d'implémenter ce genre de fomulaire très facilement (notamment les alignements à droite, l'égalité des tailles entre les champs textes, etc.).
    Romain Guy
    Android - Mon livre - Mon blog

  10. #10
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    ce genre d'ecran revient souvent dans les applications, un simple formulaire de saisie. si moi je dois developer un truc comme ca, je commencerai par demander l'utilisateur si je peux changer les radiobuttons pour 'guichet' et 'pause' en des combobox et le checkbox en radiobuttons

    par exemple un truc comme ca :-) ca evite les long formulaire qui contiene bcp de champ pour rien.



    je connais pas le metier de ton ecran, je connais pas les utilisateur et je sais pas comment ils utilise leur version access.
    si tu met des jseparator entre tes groupes ca fait champ de riz => pas bon

    quand j'ai le choix entre 2 options seulement, souvent je met des radiobuttons. les checkboxes je les utilise souvent en groupe. par exemple quand un utilisateur peut selectionner plusieurs choix. (quels sont vos hobbies ? sport, lecture, cinema... ou bien quel sont les marques que vous connaissez ? Sun, Oracle, Rational,...). sinon quand ya qu'un choix qui peut etre soit vrai soit faux, je met deux radio bouttons dans un ButtonGroup.

    quand j'ai une liste de choix dans laquelle je peut choisir qu'un choix, je met une combobox. tu gagne de la place sur ton ecran, tu evite d'avoir des donnes inutile visible a l'utilisateur et c'est plus facilement modifiable si tu dois ajouter un choix.

    si tu veux le code source de cet ecran (facilement adaptable pour java 1.4) envoi moi un mail sur bbclone@gmail.com



    ps: c fait en 5 minutes chrono avec Java 6 utilise un GBL + BaseLine

  11. #11
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    je viens de t'envoyer le code source robert_trudel. tu va le recevoir bientot :-)

  12. #12
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    853
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 853
    Points : 929
    Points
    929
    Par défaut
    Citation Envoyé par bbclone
    je viens de t'envoyer le code source robert_trudel. tu va le recevoir bientot :-)
    merci beaucoup

    ton code fonctionne bien


    j'ai tenté de recréer ton interface avec netbeans et son gui builder
    premier truc que je remarque c'est que tout ce qui est dans la fenêtre semble se center par rapport à la fenêtre si je la grossit

    une idée?

  13. #13
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    je c pas ce ke ta du faire.
    le code que j'ai envoyer normalement il agrandit les champs horizontalement sur l'espace qu'il ont et verticalement rien ne grandit. (y'a un weighty de 1 sur le dernier bouton avec un anchor dans le haut si je me rapelle.)

    montre le code ka fait netbeans et je pourai te dire quel sont les constrainte ke tu dois changer :-)

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/05/2014, 16h40
  2. Conseil Image et Layout
    Par atha2 dans le forum Composants graphiques
    Réponses: 7
    Dernier message: 01/03/2013, 20h06
  3. Conseils pour agencer layouts
    Par gégé140488 dans le forum Composants graphiques
    Réponses: 1
    Dernier message: 12/09/2012, 18h37
  4. [struts-layout]Besoin de vos conseils avisés
    Par vny dans le forum Struts 1
    Réponses: 6
    Dernier message: 21/02/2007, 17h17
  5. conseil sur le Layout a utiliser
    Par link256 dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 26/05/2006, 14h48

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