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 :

création dynamique de composants et jscrollbar


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut création dynamique de composants et jscrollbar
    Bonjour

    Dans mon application j'ai besoin de créer des JButton et JTextField dynamiquement (ligne par ligne) et de les positionner (sur la JFrame), Ce que je fais sans problème.
    Ce que je n'arrive pas à faire c'est ajouter ces composants à un JScollPane correctement: soit rien n'est affiché, soit ce n'est pas scrllable (lorsque le LayoutManager est null) soit c'est scrollable mais les composants ne tiennent pas compte des coordonnées que je leur ai associées (à cause du LayaoutManager non null).

    S'il vous plait si quelqun est déja passé par ce genre de problèmes qu'il m'en instruise remercié.

  2. #2
    Membre éclairé Avatar de Belegkarnil
    Inscrit en
    Juin 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juin 2005
    Messages : 289
    Par défaut
    Quel Layout utilise-tu? Comment ajoute-tu tes composants? Peux-tu montrer le code qui doit faire cela?

  3. #3
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    tes composants tu les met dans le JScrollPan via un JPanel ? (sinon c'est normal que ce soit compliqué ^^)

    Je viens de faire ca se matin justement voici un morceau de code :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
     
    	ArrayList _chro;
     
    	NewChroPan(){
    		this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); // j'ajoute en colonne
     
                    JPanel info = new JPanel(); // le premier panel
    		info.add(new JLabel("Chromosome     "));
    		info.add(new JLabel(" size    "));
    		info.add(new JLabel("       circular"));
    		this.add(info);
     
    		_chro = new ArrayList(); 
    		ChroPan c = new ChroPan(); 
    		_chro.add(c);
    		this.add(c);
    		JPanel plusPan = new JPanel();
    		JButton plus = new JButton("New Chromosome"); // bouton pour ajouter un element dans la "liste"
    		plusPan.add(plus);
    		plus.addActionListener(new AddChro());
    		this.add(plusPan);
     
    	}
     
    	class AddChro implements ActionListener{
     
    		public void actionPerformed(ActionEvent event) {
    			ChroPan c = new ChroPan(); // un JPanel avec des textfield
    			System.out.println(_chro.size());
    			add(c, _chro.size()+1); // j'joute juste avant le panel avec le bouton
    			_chro.add(c);
    			revalidate();
    		}
     
    	}
    ici il s'agit donc du JPanel qui est dans mon scrollPane .. je n'ai pas besoin de toucher au scrollPan car tout ce met a jour quand jajoute dans le JPanel (cf revalidate())

  4. #4
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut
    Désolé mais ça fait un bout de temps que j'essaye de revenir au code que j'avais au début mais plus rien ne marche!!

    Même ce code ne donne rien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                    JPanel info = new JPanel(); // le premier panel
    		info.add(new JLabel("Chromosome     "));
    		info.add(new JLabel(" size    "));
    		info.add(new JLabel("       circular"));
    		this.add(info);
    l

  5. #5
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Citation Envoyé par restricteur Voir le message
    Désolé mais ça fait un bout de temps que j'essaye de revenir au code que j'avais au début mais plus rien ne marche!!

    Même ce code ne donne rien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                    JPanel info = new JPanel(); // le premier panel
    		info.add(new JLabel("Chromosome     "));
    		info.add(new JLabel(" size    "));
    		info.add(new JLabel("       circular"));
    		this.add(info);
    l
    tu le met où ?

    un exemple (j'espere que c'est ce que tu veux)

    dans ta JFrame dans le constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    MyPanel pan = new MyPanel();
    JScrollPan scroll = new JScrollPan(pan);
    this.add(scroll, BorderLayout.CENTER);
    //hum fo ptet donner un taille au sroll pan si c'est du border Layout)
    setVisible(true);
    La class MyJPanel
    le code que j'ai mis tout à l'heure (envelopper comme il faut ^^)

  6. #6
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut
    Je le met dans le constructeur de la JFrame

    voici son début:
    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
    17
    18
    19
    20
     
    public class Settings extends javax.swing.JFrame{
     
        /** Creates new form Settings */
        public Settings() {
            initComponents(); 
     
            BufferedReader lec=null;
            vecTex1=new Vector();
            vecTex2=new Vector();
            vecBut=new Vector();
            String[] strTab=null;
            String str="";
     
            JPanel info = new JPanel(); // le premier panel
    		info.add(new javax.swing.JLabel("Chromosome     "));
    		info.add(new javax.swing.JLabel(" size    "));
    		info.add(new javax.swing.JLabel("       circular"));
    		this.add(info);
                    ...

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

Discussions similaires

  1. accélérer la création dynamique de composants
    Par Melodie dans le forum Débuter
    Réponses: 14
    Dernier message: 16/04/2009, 17h34
  2. Création dynamique de composants
    Par tsikpemoise dans le forum JSF
    Réponses: 3
    Dernier message: 01/12/2008, 17h30
  3. Création dynamique de composants
    Par persam dans le forum Delphi
    Réponses: 3
    Dernier message: 09/01/2007, 10h58
  4. Réponses: 3
    Dernier message: 16/05/2006, 16h24
  5. Création dynamique de composants et destruction
    Par cpdump dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/01/2005, 17h57

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