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

 Java Discussion :

Positionnement sur un JPanel/BoxLayout


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Par défaut Positionnement sur un JPanel/BoxLayout
    Bonjour, je développe actuellement la modélisation graphique d'un de mes projets Java.

    J'aimerai le représenter sous la forme d'un "tableau" de plusieurs lignes (le positionnement horizontal définit les coordonnées) et des figures géométriques différentes correspondant aux objets à ces coordonnées.
    En définitive, un sorte de boulier avec différentes formes géométriques (étoiles, rectangle, triangle).

    Les coordonnées sont quasiment continues, donc je ne pense pas pouvoir utiliser un GridBagLayout ou un GridLayout qui seront trop imprécis.
    J'ai pensé utiliser plusieurs JPanel (un pour chaque ligne) avec un layoutBoxLayout ou plusieurs box horizontales mais je me heurte à un même problême de base.

    En effet, pour dessiner une figure géométrique je dois rentrer ces coordonnées exactes, or je ne les connais pas. Tout ce que je connais c'est leurs positionnements les unes par-rapport aux autres (leurs coordonnées horizontales).

    J'aimerai donc rentrer mes figures géométriques en n'ayant qu'a préciser leur placement vis à vis de leurs container (JPanel ou box) ou de celle qui a été rentré avant.
    Comment pourrai-je m'y prendre ?

    Merci d'avance.


    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
    JPanel listPane = new JPanel();
     
    	listPane.setLayout(new BoxLayout(listPane, BoxLayout.X_AXIS));
     
     
    	class myCompound extends Component{
     
    				public void paint(Graphics g) {
     
    				                 g.drawRect(10,10,10,10);
    						 g.setColor(Color.green);
                                    }
             }
     
     
            listPane.add(new myCompound() ???);

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 187
    Par défaut
    Bonjour,

    Ce qui est à la fois l'avantage et le problème des layouts est que l'on n'a pas à se soucier d'un quelconque système de coordonnées. Les layouts prennent les tailles préférées, maximales et minimales, le second paramètre du .add(), la taille du conteneur, etc., mélangent le tout et calculent des coordonnées pour chaque composant...

    En jouant sur les preferred /minimum / maximum size, tu devrais pouvoir positionner correctement ton affaire, la taille d'un élément N étant la position relative de l'élément N+1 par rapport à N.
    Sinon tu peux désactiver le layout (il me semble que le setLayout(null) du conteneur suffit) pour définir toi-même des coordonnées (setLocation()).

    Voilà

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Dans le cas présent la solution la plus propre est tout simplement d'oublier tout ce qui est layout et de dessiner toutes les formes au bon endroit dans le paintComponent (tout en prenant compte bien sur de la taille de la zone de dessin ^^)

Discussions similaires

  1. Cherche bouton positionnable sur un JPanel
    Par Stéphane Bruckert dans le forum Composants
    Réponses: 4
    Dernier message: 26/02/2010, 15h36
  2. JPanel et positionnement sur un ViewPort
    Par RR instinct dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 09/02/2007, 15h33
  3. Réponses: 2
    Dernier message: 11/01/2005, 14h10
  4. [Forms6i] positionner sur le Dernier Record
    Par bargou dans le forum Forms
    Réponses: 3
    Dernier message: 06/12/2004, 10h44
  5. Listener sur un JPanel
    Par ptitelfe dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 27/03/2004, 13h14

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