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

Interfaces Graphiques en Java Discussion :

2 JPanel et des boutons


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 10
    Par défaut 2 JPanel et des boutons
    Bonjour, bonsoir,

    Je fais appel à vous car je me retrouve dans une impasse et j'avoue ne plus savoir où donner de la tête pour arriver à mes fins.
    Je travaille sur NetBeans IDE version 8.0.2.

    Je vous explique: j'ai le projet de créer une portée de musique pour permettre à l'utilisateur de composer. J'aimerais que, lorsque ce dernier clique sur la portée, le programme affiche des ronds noirs qui correspondent aux notes souhaitées.

    J'ai donc créé des boutons qui représentent les lignes de la portée qui sont positionnés sur un premier JPanel. Je voudrais que, lorsque je clique sur un bouton (soit une ligne), cela affiche un rond noir sur le bouton cliqué. Du coup j'ai créé un deuxième JPanel qui va afficher ces ronds. Seulement lorsque je veux afficher mon JPanel, celui se place derrière mes boutons de telle sorte que mon rond noir n'apparaît pas sur les boutons.

    Je pensais au départ crée un JPanel transparent qui se positionne sur mon premier JPanel avec les boutons et affiche des ronds noirs, mais je n'ai trouvé que l'opération "setOpaque(false)" qui met ce JPanel derrière le premier JPanel. Ainsi, les ronds noirs s'affiche bien sur le JPanel 2 mais ils sont cachés par les boutons du JPanel 1.

    Je vous joins mon code en vous remerciant par avance de m'avoir lue et de vous être penché (de près ou de loin) sur mon problème.

    PS: Pour l'instant je souhaite juste afficher un rond noir sur un bouton quelconque. Je n'ai pas encore essayé d'afficher un rond noir que si je clique sur un bouton.

    Code:
    Projet.java
    ou en image pdf page1.pdf page2.pdf page3.pdf (désolé d'insérer le code de cette manière, je ne sais pas comment faire sinon.. je suis une vraie débutante)

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    setOpaque rend bien transparent. Par contre l'ordre de dessin des composant quand tu ne définis pas de layout, c'est l'ordre inverse de l'ordre d'ajout. Tu rajoute ton panneau noir en dernier, il est dessiné en premier, puis les bouton sont dessinés au dessus.
    Vu ce que tu cherche à faire, tu va galérer avec les bouton et autres. Personellement j'opterais pour un simple JPanel, que tu met aux dimension qui t'intéressent (set prefered/minimum/maximun Size()) et ensuit tu fais tout ton dessin (ligne, notes) toi même dedans. Ce n'est pas bien compliqué et je suis sur que tu le fais déjà dans tes bouton / panneau pour dessiner les éléments individuels.

    Bref pas besoin de créer un composant graphique pour chaque note/ligne. Un composant unique "Partition" peut se charger de dessiner toute une partition et de réagir aux clics.

  3. #3
    Membre du Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 10
    Par défaut
    "Personellement j'opterais pour un simple JPanel, que tu met aux dimension qui t'intéressent (set prefered/minimum/maximun Size()) et ensuit tu fais tout ton dessin (ligne, notes) toi même dedans. Ce n'est pas bien compliqué et je suis sur que tu le fais déjà dans tes bouton / panneau pour dessiner les éléments individuels.
    Bref pas besoin de créer un composant graphique pour chaque note/ligne. Un composant unique "Partition" peut se charger de dessiner toute une partition et de réagir aux clics. "

    Tu veux dire que je crée un seul JPanel aux dimensions de ma portée (puis dedans je dessine les lignes de cette même portée) et qu'ensuite je crée un unique bouton qui va dessiner des points noirs en fonction de la position de mon clic ?
    Le problème c'est que je voudrais aussi qu'en fonction du clic, et donc en fonction du bouton cliqué, il joue la note correspondante. Par exemple je clique sur la ligne de la note fa, ça m'affiche une noire et en plus ça me joue le son fa (j'ai déjà créé ma fonction qui joue le son).

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par MC.LAPE Voir le message
    et qu'ensuite je crée un unique bouton qui va dessiner des points noirs en fonction de la position de mon clic ?
    Non, tu gère le clic directement sur ton JPanel, pas de bouton. en fonction des coordonnées X/Y de ton click dans le panel, tu dois sans aucun soucis être capable de savoir quelle note de la portée a été cliquée. La position en Y te donnera la ligne, la position en X si c'est la première, deuxième, troisième etc note.

  5. #5
    Membre du Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 10
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    en fonction des coordonnées X/Y de ton click dans le panel, tu dois sans aucun soucis être capable de savoir quelle note de la portée a été cliquée.
    Mais comment je récupère la position de mon clic ? Parce qu'avec les boutons, je pouvais les mettre sur écoute et ensuite je savais quel était le bouton cliqué..Est-ce que je peux mettre un JPanel sur écoute ?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    de la même manière que tu faisait bouton.addActionListener, tu peux faire panel.addMouseListener()

    http://docs.oracle.com/javase/7/docs...eListener.html

    dans le listener, sur la méthode mouseClicked, l'évènement que tu reçois contient getX() et getY()

Discussions similaires

  1. Redimensionner des boutons et centrer un JPanel
    Par sihamnet dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 20/10/2014, 15h24
  2. Ajouter/Supprimer des boutons dans un JPanel
    Par zamborta dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 29/05/2013, 09h52
  3. Avoir des boutons au dessus d'un JPanel
    Par auranx dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 08/05/2012, 01h34
  4. Décalage des boutons suite à un Zoom sur JPanel
    Par fantomasmusic dans le forum 2D
    Réponses: 2
    Dernier message: 26/01/2009, 10h25
  5. Réponses: 13
    Dernier message: 18/04/2007, 09h49

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