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 :

SetBound sur Jpanel et ajout d'un Bouton


Sujet :

AWT/Swing Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 61
    Points : 32
    Points
    32
    Par défaut SetBound sur Jpanel et ajout d'un Bouton
    Bonjour,

    Voilà, j'ai créer une fenetre qui contient une Jpanel_Num1 qui possede un layout NULL.

    Ceci pour pouvoir placer mes composants avec setBounds.

    Dans ce Jpanel_Num1, j'y ai mis un autre Jpanel_Num2 avec un GridLayout(5,5) et placé avec setBound

    Dans ce jpanel_Num2, j'ai voulut ajouter un Bouton, mais malheureusement le bouton ne s'affiche pas !
    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
     
    panel1 = new JPanel();
    panel1.setLayout(null);
     
    panel2 = new JPanel();
    panel2.setLayout(new GridLayout(5,5));
    panel2.setBound(2,2,500,500);
     
    //pour voir si le jpanel s affiche
    panel2.setBorder(BorderFactory.createLineBorder(Color.black));
     
     
    boutton = new JButton("hjhj");
    panel2.add(boutton);
     
    panel1.add(panel2)

    le panel2 s'affiche, mais pas le bouton à l'interrieur...
    Pour reussir à afficher le bouton, j'ai du fair un setBounds dessus, pou le placer dans le jpanel.....

    Est-ce que c'est possible, d'ajouter des boutons sans les positionner manuellement ?


    merci

  2. #2
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Points : 955
    Points
    955
    Par défaut
    un conseil, n'utilise pas le layout null car il peut causer beaucoup de problème
    Ce qu'on appelons le hasard n'est que notre incapacité à comprendre un degré d'ordre supérieur.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 61
    Points : 32
    Points
    32
    Par défaut
    Ba en faite, je suis un peut obligé, car je doit placer mes Jpanel à différent endroit assez bizzard.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 64
    Points : 59
    Points
    59
    Par défaut
    Tu peux aussi créer un panel avec GridLayout(x, x) et en ajouter un peu ou tu veux avec des x_axis et y_axis (avec la bonne syntaxe)

    Mais par contre ton this.add(panel2) il sert à quoi?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 61
    Points : 32
    Points
    32
    Par défaut
    je me suis trompé c'est panel1.add(panel2) et pas this..



    Tu peux aussi créer un panel avec GridLayout(x, x) et en ajouter un peu ou tu veux avec des x_axis et y_axis (avec la bonne syntaxe)
    nan j'ai aps envie de defenir les x et y des boutons, j'aimerai que ca soit le gridLayout qui gere ca.

    par contre ems Jpanel, la oui j'ai besoin de les setBoundé (ça ca marche=

  6. #6
    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
    Le problème du layout null est qu'il interrompt la gestion du layout, justement. Cette gestion est un enchaînement de panneaux imbriqués en panneaux imbriqués, ordonnée par les layouts. Un niveau d'imbrication sans layout signifie l'interruption de la gestion à ce niveau d'imbrication, et il faut se taper toute la gestion des sous-niveaux. Il faut que tu fasses toi même les packs, validate, etc, sur les JPanels qui reprennent des layouts non nuls aux moments opportuns.

    Enfin bon, les IHM tellement spécifiques que aucun layout ne leur convient... à se croire spécial, souvent on ne fait que ramer. Mais au moins c'est formateur et ça donne du muscle
    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é.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 61
    Points : 32
    Points
    32
    Par défaut
    Merci de vos réponses !

    Il faut que tu fasses toi même les packs, validate, etc, sur les JPanels qui reprennent des layouts non nuls aux moments opportuns.
    Je ne comprend pas trop comment faire ceci ?



    je suis en train de travailer sur un tablette tactile, et je demande à l'utilisateur de toucher une zone de la tablette pour position le menu la où il le souhaite.
    C'est pour cela que j'ai besoin de positioner mon Jpanel.

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Si t'as des positionnement 'bizzare', utilise le springlayout, il est le plus flexible. Tu précise pour chaque composant ses coordonées par rapports à d'autre composants (et donc à ce titre çà peut aussi se comporter comme un null layout si tu fait des positionnement relatifs au parent).

    Ensuite, pour ton gridbaglayout, quant tu fait un add(button), tu dois en fait faire add(button,gbc) avec gbc un gridbagconstraint qui donne les informations sur la position de l'évènbement. Pour plus de détails, voir les tutoriels de sun sur les layout.

    Au fait, dans 99.99 % des cas, le null layout c'est du n'importe quoi parce qu'on a pas été foutu d'utiliser proprement els layout existant et çà ne fait qu'empirer les chose (fenetres qui ne se redimensionnent pas correctement, affichage foireux sur les machines où les fontes sont plus grosses, etc)

  9. #9
    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
    Si c'est un menu popup alors il faut utiliser un JLayeredPane en plaçant le popup au niveau POPUP_LAYER.

    Tu vois, tout est prévu ... mais peut être un peu moins évident au premier abord que le layout null ; lit bien la doc, c'est obligatoire.
    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é.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 61
    Points : 32
    Points
    32
    Par défaut
    Ah, ouais.

    JLayredPane, je connaisait pas .

    merci, je vais essayer ça.

Discussions similaires

  1. Ajout d'un bouton sur une vue "Canvas"
    Par Linio dans le forum Composants graphiques
    Réponses: 10
    Dernier message: 19/09/2010, 22h16
  2. Ajout d'un bouton sur chaque ligne
    Par Victor.ZENGA dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/06/2009, 10h19
  3. Décalage des boutons suite à un Zoom sur JPanel
    Par fantomasmusic dans le forum 2D
    Réponses: 2
    Dernier message: 26/01/2009, 10h25
  4. ajouter un paint() sur jpanel
    Par minooo dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 25/11/2007, 22h52
  5. Réponses: 11
    Dernier message: 28/01/2006, 20h52

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