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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
/*
* MyLayout.java
*
* Created on 2 mars 2006, 15:48
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package xPoubelle;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.LayoutManager;
/**
*
* @author Lethal
*/
//La classe doit implémenter layout manager
public class MyLayout implements LayoutManager{
Dimension taille;
Component[] composants;
int ratio[] = {15,60,25};
int nbr;
int h,w;
/** Creates a new instance of MyLayout */
public MyLayout()
{
}
public void addLayoutComponent(String name, Component comp)
{
}
public void removeLayoutComponent(Component comp)
{
}
public Dimension preferredLayoutSize(Container parent)
{
return parent.getSize();
}
public Dimension minimumLayoutSize(Container parent)
{
return parent.getSize();
}
// on ne redéfinit que la méthode qui est appelée chaque fois qu'on doit repositionner les composants
public void layoutContainer(Container parent)
{
// on récupère la liste des composants
composants = parent.getComponents();
// on récupère la taille du panel qui contient les 3 panels
taille = parent.getSize();
System.out.println("taille de la fenêtre: " + taille);
// coordonnées en x et y
w = (int)taille.getWidth();
h = (int)taille.getHeight();
nbr = composants.length;
System.out.println("nombre de composants: " + nbr);
// Si on a au moins 3 composants on affiche les trois premier en respectant les ratio définis plus haut
if(nbr >= 3)
{
composants[0].setBounds(0,0,w,h*ratio[0]/100);
composants[1].setBounds(0,h*ratio[0]/100,w,h*ratio[1]/100);
composants[2].setBounds(0,getRealSize(0) + getRealSize(1),w,h - (getRealSize(0) + getRealSize(1)));
if(nbr > 3) System.out.println("Je n'affiche pas plus de 3 composants");
}
else
{
System.out.println("Il me faut au moins 3 compostants");
}
}
// calcul la taille réelle en fonction de la hauteur de la fenêtre et du ratio
public int getRealSize(int numeroRatio)
{
return h*ratio[numeroRatio]/100;
}
} |
Partager