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

Agents de placement/Fenêtres Java Discussion :

clignotement, redimensionnement et layout


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    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 clignotement, redimensionnement et layout
    Bonjour.

    Bon si certain sont tombé sur d'autres de mes topis ils sauront que je ne suis pas une adèpte des layoutManager ....

    Voici mon problème : je cherche à faire une représentation graphique qui seras dans une JInternalFrame (et pour l'instant je la crée dans un Jframe) et dans cette frame dans un panel et sur ce panel decomposé en trois sous panel .. jusque la pas de problème ... ca s'affiche bien, ca fait ce que je veux MAIS:

    le redimentionnement ca clignote Horriblement , passant de l'état 2 px sur 2 px à fenetre entière à chaque redimentsonnement.

    Je n'utilisais pas de layout donc je me suis dit que le problème venais de là (?) je suis donc repartie à la source et ai au moins voulu afficher les premier panel correctement mais la même dans un borderlayout.center le panel ne prend pas toute la place (c'est pourtant ce que j'avais crus comprendre que dans le borderlayout tout la place etait prise non ??)

    Enfin du coup je pose un question de débutante ... OScour comment on fait ?

    mon main ma frame
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.util.ArrayList;
     
    import javax.swing.JDesktopPane;
    import javax.swing.JFrame;
    import javax.swing.JInternalFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JWindow;
     
    /**
     * MainFrame.java
     */
    public class BAMain extends JFrame{
    	BAMain()
    	{
     
    		super("MAFBASA :");
     
    		this.setSize(800, 600);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		java.awt.Toolkit toolkit=java.awt.Toolkit.getDefaultToolkit();
    		java.awt.Dimension tailleEcran=toolkit.getScreenSize();
    		java.awt.Dimension tailleFrame=this.getSize();
    		this.setLocation((tailleEcran.width-tailleFrame.width)/2,(tailleEcran.height-tailleFrame.height)/2);
     
    		//this.setLayout(null);
     
    		ArrayList list = new ArrayList();
    		list.add(new GenePoint("toto", 1000));
    		list.add(new GenePoint("titi", 2000));
    		list.add(new GenePoint("tutu", 5000));
    		list.add(new GenePoint("a", 8213));
    		list.add(new GenePoint("b", 5540));
    		list.add(new GenePoint("c", 46));
    		JPanel pan = new JPanel();
     
    		this.add(pan, BorderLayout.CENTER );
    		System.out.println(pan.getSize());
    		BestAlignement ba = new BestAlignement(list,9900,100,(float)0.1,(float)0.1,false,pan);
    		pan.add(ba);
     
    		this.setVisible(true);
     
    	}
     
    	public static void main(String[] args) {
    		BAMain mf = new BAMain();
     
    		System.out.println(1+(-2.1%1));
    		//DbGestion dbg = new DbGestion();
    		//mf.setdbg(dbg);
    	}
     
    }
    mon panel bas niveau :
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Window;
    import java.util.ArrayList;
     
    import javax.swing.BorderFactory;
    import javax.swing.JComponent;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JWindow;
     
     
    public class BestAlignement extends JPanel{
     
    	private int _period;
    	private float _phase;
    	private float _error;
    	private int _size;
    	private boolean _circular;
    	private ArrayList _geneList;
    	private JComponent _parent;
     
    	BestAlignement(ArrayList list,int size, int period, float phase, float error,  boolean circular , JComponent parent)
    	{
    		super();
    		_geneList = list;
    		_period = period;
    		_phase = phase;
    		_size = size;
    		_error = error;
    		_circular = circular;
    		_parent = parent;
    		this.setBackground(Color.BLUE);
    		//this.setBounds(0, 0, _parent.getWidth(), _parent.getHeight());
    		//this.setBorder(BorderFactory.createLineBorder(Color.black));
    		//this.add(new BAGraph(list, size, period, phase, error, circular, this));
    		//System.out.println("create");
     
    	}
     
    /*	public void paintComponent (Graphics g)
    	{
    		super.paintComponent(g);
    		//this.setBounds(0, 0, _parent.getWidth(), _parent.getHeight());
     
    	}*/
    }
    j'ai donc ma fenetre 800*600 et au milieu en haut un petit truc bleu ridicule ....

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Par défaut
    Pour positionner ta JFrame au centre de l'écran, en java 1.5, tu peut utiliser setLocationRelativeTo(null);

    Dans ton BestAlignement, tu ne mets rien dans ton JPanel ?!?

    Par ailleurs, il te faut aussi définir un layout pour ton JPanel pan ...

  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
    Citation Envoyé par Fifan31
    Pour positionner ta JFrame au centre de l'écran, en java 1.5, tu peut utiliser setLocationRelativeTo(null);

    Dans ton BestAlignement, tu ne mets rien dans ton JPanel ?!?

    Par ailleurs, il te faut aussi définir un layout pour ton JPanel pan ...
    normalement si mais je voulais tester en repartant de 0 .. pour pan j'ai essayer avec et sans layout .

    et je n'ai pas java 1.5 ^^ deja que 1.4 marche pas très bien a mon boulot ... et comme je suis pas root T T ...

  4. #4
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    En même temps tu indique un BorderLayout.CENTER sans dire à ta frame d'utiliser le dit BorderLayout.

    Code incriminé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.add(pan, BorderLayout.CENTER );
    Par défaut c'est FlowLayout qui est utilisé dans le panel... donc c'est incohérent.

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Non, par défaut dans une JFrame le content pane utilise un BorderLayout.

    @Lady: Essaye de faire le this.setSize(800, 600); en dernier, juste avant setVisible(true).

  6. #6
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Citation Envoyé par Gfx
    Non, par défaut dans une JFrame le content pane utilise un BorderLayout.
    Ah crote... je croyais que c'était FlowLayout partout... au temps pour moi.

  7. #7
    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
    Ok ... le flowLayout ne faisais pas ce que je me rappelais qu'il faisais .... bon j'ai mis un borderlayout aussi au pan et ca marche effectivement ...

    maitnenant continuons sur cette histoire de clignotement ... (toujours si quelqu'un a un idée je suis preneuse ...)

    bon ca clignote encore .. pourtant cette fois g pas un seul paintComponent et j'utilise un layout ... je sais qu'il y avais une méthode pour eviter le clignotement mais je ne me souviens plus de laquel ... quelqu'un ?

Discussions similaires

  1. [C#][2.0] Clignotement sur redimensionnement d'une fenetre
    Par glebourg dans le forum Windows Forms
    Réponses: 9
    Dernier message: 02/01/2012, 14h58
  2. [Layout]Redimensionnement de panels
    Par Ginseng dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 14/04/2008, 22h34
  3. Clignotement lors des redimensionnements
    Par TSalm dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 07/12/2007, 23h08
  4. [SWT][Layout]problème de redimensionnement d'un Text
    Par McFoggy dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 05/08/2004, 12h10
  5. [BPW] Affichage clignotant lors de redimensionnement fenêtre
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 10
    Dernier message: 24/04/2004, 00h01

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