Prob avec le BorderLayout

Azdruyel Messages postés 66 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 10 mai 2005 - 18 juin 2004 à 12:37
Azdruyel Messages postés 66 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 10 mai 2005 - 23 juin 2004 à 16:24
Salut a tous!!! :)
J'ai un probleme avec mon BorderLayout. Je cree en NORTH des boutons avec des icones mais le probleme c'est que j'ai la partie CENTER qui deborde dessus meme si je met un panel dedans avec les minimumSize, maximumSize et tout et tout, et du coup c'est beaucoup moins joli!!!
Si quelqu'un connait une methode pour reduire la taolle du CENTER, ca m'interresserait mechamment parce que la ca me preds la tete ;)
Merci a tous ceux qui se sont deja pris la tete ou qui vont se la prendre :p
A voir également:

6 réponses

Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
18 juin 2004 à 12:48
Salut,

Qd tu créer ton BorderLayout as tu essayé de lui attribuer des marges exemple

BorderLayout bl1 = new BorderLayout (5,10);

Ainsi les composants qui ont bl1 en layout auront une marge de 5 en X et 10 en Y
0
Azdruyel Messages postés 66 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 10 mai 2005
18 juin 2004 à 14:17
ouep je viens d'essayer et le prob c'estque ca me mange la partie inferieur du NORTH, meme en mettant les marges.
Merci tout de meme. Si y a d'autres idees, faites m'en part, pitie, j'en ai marre de ce BorderLayout!!!!!
PS : Merci tout de meme a Twinuts
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
18 juin 2004 à 20:59
tu veux bien balancer l'implementatation de tes layout stp
0
Azdruyel Messages postés 66 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 10 mai 2005
19 juin 2004 à 13:26
C bon g reussi a resoudre mon prob et du coup maintenant c du tout bon :)
Le prob venait du redimensionnement du NORTH que j'avais fait, en fait g fait le noob :)
Je balancerai le source plus tard (genre lundi) par que la c chez mon patron et il veut pas qu'on ramene de truc chez nous le WE pour que le code reste secret!!!!:(
Mais c promis, des que g l'occasion, je le poste!!!!:)
Merci beaucoup
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
19 juin 2004 à 23:20
tsé voulais pas le code complet mais juste un exemple de ton implementation histoir de voir le prob mais si tu as rehussi c good pour toi :) enfin si tu as d'autre soucy fais signe
0
Azdruyel Messages postés 66 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 10 mai 2005
23 juin 2004 à 16:24
voila comme promis (meme si c avec un peu de retard) tout le code de l'IHM (franchement g eu la flemme de faire le tri!!!!)

package pictures;

import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Choice;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Rectangle;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.Scrollable;

/**
* @author Azdruyel
*
* Window - Preferences - Java - Code Style - Code Templates
* TODO To change the template for this generated type comment go to
*/
public class Main extends JFrame implements Scrollable{

public Main(){
super();
setTitle("Pictures manager");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();//donne la dimension de l'ecran
setBounds(dim.width/2,dim.height/2,dim.width/2,dim.height/2);// place la fenetre dans le quart inferieur droit de l'ecran
Container cp=this.getContentPane();
cp.setLayout(new BorderLayout());//container principal

/*-------------------------------------------------------------------------------
* Panel d'affichage de l'image (centre)
-------------------------------------------------------------------------------*/
JPanel centerBase =new JPanel();//sous panel du cote north
centerBase.setBackground(Color.pink);//couleur du sous panel
cp.add(centerBase,BorderLayout.CENTER);//ajoute le sous panel au container du haut
centerBase.setMaximumSize(new Dimension(this.getWidth()-100,this.getHeight()-100));//redimensionnement du sous panel
centerBase.setMinimumSize(new Dimension(this.getWidth()-100,this.getHeight()-100));
centerBase.setPreferredSize(new Dimension(this.getWidth()-100,this.getHeight()-100));
Canvas pictureArea = new Canvas();//aire du dessin
pictureArea.setBounds(new Rectangle(centerBase.getWidth(),centerBase.getHeight()));//
centerBase.add(pictureArea);

/*-------------------------------------------------------------------------------
* Panel de dessin (gauche)
-------------------------------------------------------------------------------*/
JPanel westBase =new JPanel();//sous panel du cote west
westBase.setBackground(Color.white);//couleur du sous panel
cp.add(westBase,BorderLayout.WEST);//ajoute le sous panel au container gauche
westBase.setMaximumSize(new Dimension(60,100));//redimensionnement du sous panel
westBase.setMinimumSize(new Dimension(60,100));
westBase.setPreferredSize(new Dimension(60,100));
JPanel west =new JPanel();//panel contenant les options de dessin
westBase.add(west);//on met west dans le sous panel
west.setBackground(Color.white);//choix de la couleur au panel
west.setBounds(0,0,60,100);
west.setLayout(new GridLayout(7,2));//place le layout pour le panel west

JButton pinceau=new JButton();//creation du bouton
pinceau.setIcon(new ImageIcon(this.getClass().getResource("pinceau final.gif")));
//ajout de l'icone au bouton
pinceau.setName("pinceau");//nom du bouton

JButton formeLibre=new JButton();//creation du bouton
formeLibre.setIcon(new ImageIcon(this.getClass().getResource("forme libre final.gif")));
//ajout de l'icone au bouton
formeLibre.setName("formeLibre");//nom du bouton

JButton rect=new JButton();//creation du bouton
rect.setIcon(new ImageIcon(this.getClass().getResource("rectangle vide final.gif")));
//ajout de l'icone au bouton
rect.setName("rect");//nom du bouton

JButton cercle=new JButton();//creation du bouton
cercle.setIcon(new ImageIcon(this.getClass().getResource("cercle vide final.gif")));
//ajout de l'icone au bouton
cercle.setName("cercle");//nom du bouton

JButton brosse=new JButton();//creation du bouton
brosse.setIcon(new ImageIcon(this.getClass().getResource("brosse final.gif")));
//ajout de l'icone au bouton
brosse.setName("brosse");//nom du bouton

JButton gomme=new JButton();//creation du bouton
gomme.setIcon(new ImageIcon(this.getClass().getResource("gomme final.gif")));
//ajout de l'icone au bouton
gomme.setName("gomme");//nom du bouton

JButton rectPlein=new JButton();//creation du bouton
rectPlein.setIcon(new ImageIcon(this.getClass().getResource("rectangle plein final.gif")));
//ajout de l'icone au bouton
rectPlein.setName("rectPlein");//nom du bouton

JButton cerclePlein=new JButton();//creation du bouton
cerclePlein.setIcon(new ImageIcon(this.getClass().getResource("cercle plein final.gif")));
//ajout de l'icone au bouton
cerclePlein.setName("cerclePlein");//nom du bouton

JButton polygone=new JButton();//creation du bouton
polygone.setIcon(new ImageIcon(this.getClass().getResource("forme polygonale pleine final.gif")));
//ajout de l'icone au bouton
polygone.setName("polygone");//nom du bouton

JButton trait=new JButton();//creation du bouton
trait.setIcon(new ImageIcon(this.getClass().getResource("trait droit final.gif")));
//ajout de l'icone au bouton
trait.setName("trait");//nom du bouton

JButton potPeinture=new JButton();//creation du bouton
potPeinture.setIcon(new ImageIcon(this.getClass().getResource("pot de peinture final.gif")));
//ajout de l'icone au bouton
potPeinture.setName("potPeinture");//nom du bouton

CaseCouleur couleur=new CaseCouleur();//Création de la case indiquant la couleur en cours d'utilisation

JButton palette=new JButton();//creation du bouton
palette.setIcon(new ImageIcon(this.getClass().getResource("palette couleurs final.gif")));
//ajout de l'icone au bouton
palette.setName("palette");//nom du bouton
palette.addActionListener(new EcouteurWest(palette,couleur));//ajout d'un ecouteur

JButton texte=new JButton();//creation du bouton
texte.setIcon(new ImageIcon(this.getClass().getResource("texte final.gif")));
//ajout de l'icone au bouton
texte.setName("texte");//nom du bouton

//redimensionnement des boutons
//pour le pinceau
pinceau.setMaximumSize(new Dimension(30, 30));
pinceau.setMinimumSize(new Dimension(30, 30));
pinceau.setPreferredSize(new Dimension(30, 30));
//pour le cercle plein
cerclePlein.setMaximumSize(new Dimension(30, 30));
cerclePlein.setMinimumSize(new Dimension(30, 30));
cerclePlein.setPreferredSize(new Dimension(30, 30));
//pour le rectangle plein
rectPlein.setMaximumSize(new Dimension(30, 30));
rectPlein.setMinimumSize(new Dimension(30, 30));
rectPlein.setPreferredSize(new Dimension(30, 30));
//pour la gomme
gomme.setMaximumSize(new Dimension(30, 30));
gomme.setMinimumSize(new Dimension(30, 30));
gomme.setPreferredSize(new Dimension(30, 30));
//pour la brosse
brosse.setMaximumSize(new Dimension(30, 30));
brosse.setMinimumSize(new Dimension(30, 30));
brosse.setPreferredSize(new Dimension(30, 30));
//pour le cercle
cercle.setMaximumSize(new Dimension(30, 30));
cercle.setMinimumSize(new Dimension(30, 30));
cercle.setPreferredSize(new Dimension(30, 30));
//pour le rectangle
rect.setMaximumSize(new Dimension(30, 30));
rect.setMinimumSize(new Dimension(30, 30));
rect.setPreferredSize(new Dimension(30, 30));
//pour la forme libre
formeLibre.setMaximumSize(new Dimension(30, 30));
formeLibre.setMinimumSize(new Dimension(30, 30));
formeLibre.setPreferredSize(new Dimension(30, 30));
//pour le polygone
polygone.setMaximumSize(new Dimension(30, 30));
polygone.setMinimumSize(new Dimension(30, 30));
polygone.setPreferredSize(new Dimension(30, 30));
//pour le trait
trait.setMaximumSize(new Dimension(30, 30));
trait.setMinimumSize(new Dimension(30, 30));
trait.setPreferredSize(new Dimension(30, 30));
//pour le pot de peinture
potPeinture.setMaximumSize(new Dimension(30, 30));
potPeinture.setMinimumSize(new Dimension(30, 30));
potPeinture.setPreferredSize(new Dimension(30, 30));
//pour la palette
palette.setMaximumSize(new Dimension(30, 30));
palette.setMinimumSize(new Dimension(30, 30));
palette.setPreferredSize(new Dimension(30, 30));
//pour le texte
texte.setMaximumSize(new Dimension(30, 30));
texte.setMinimumSize(new Dimension(30, 30));
texte.setPreferredSize(new Dimension(30, 30));

// Ajout des boutons au panel
west.add(pinceau);
west.add(brosse);
west.add(formeLibre);
west.add(polygone);
west.add(trait);
west.add(potPeinture);
west.add(rect);
west.add(rectPlein);
west.add(cercle);
west.add(cerclePlein);
west.add(palette);
west.add(couleur);
west.add(texte);
west.add(gomme);

//creation des textes d'information
pinceau.setToolTipText("Paint brush");
brosse.setToolTipText("Brush");
formeLibre.setToolTipText("Free Lines");
polygone.setToolTipText("Polygons");
trait.setToolTipText("Lines");
potPeinture.setToolTipText("Fill in");
rect.setToolTipText("Rectangles");
rectPlein.setToolTipText("Full rectangles");
cercle.setToolTipText("Circles");
cerclePlein.setToolTipText("Full circles");
palette.setToolTipText("Color picker");
texte.setToolTipText("Text");
gomme.setToolTipText("Gum");
couleur.setToolTipText("Selected color");

/*-----------------------------------------------------------------------------
* Barre d'outils (haut)
----------------------------------------------------------------------------*/
JPanel northBase =new JPanel();//sous panel du cote north
northBase.setBackground(Color.white);//couleur du sous panel
cp.add(northBase,BorderLayout.NORTH);//ajoute le sous panel au container du haut
northBase.setMaximumSize(new Dimension(Toolkit.getDefaultToolkit().getScreenSize().width/2,50));//redimensionnement du sous panel
northBase.setMinimumSize(new Dimension(Toolkit.getDefaultToolkit().getScreenSize().width/2,50));
northBase.setPreferredSize(new Dimension(Toolkit.getDefaultToolkit().getScreenSize().width/2,50));
JPanel north =new JPanel();//panel contenant les options de la barre d'outils
northBase.add(north);//on met north dans le sous panel
north.setBackground(Color.white);//choix de la couleur au panel
north.setLayout(new FlowLayout());//place le layout pour le panel north

JButton undo=new JButton();//creation du bouton
undo.setIcon(new ImageIcon(this.getClass().getResource("retour arriere final.gif")));
//ajout de l'icone au bouton
undo.setName("undo");//renommage du bouton

JButton redo=new JButton();//creation du bouton
redo.setIcon(new ImageIcon(this.getClass().getResource("retour avant final.gif")));
//ajout de l'icone au bouton
redo.setName("redo");//renommage du bouton

JButton save=new JButton("Save as...");//creation du bouton
save.setForeground(new Color(102));
save.setBackground(new Color(16763955));
save.setName("save");

JButton send=new JButton("Send to...");//creation du bouton
send.setForeground(new Color(102));
send.setBackground(new Color(16763955));
send.setName("send");//renommage du bouton

JButton main=new JButton();//creation du bouton
main.setIcon(new ImageIcon(this.getClass().getResource("main final.gif")));
//ajout de l'icone au bouton
main.setName("main");//renommage du bouton

JButton fleche=new JButton();//creation du bouton
fleche.setIcon(new ImageIcon(this.getClass().getResource("fleche deplacement modifiée final.gif")));
//ajout de l'icone au bouton
fleche.setName("fleche");//renommage du bouton

JButton clear=new JButton("Clear all");//creation du bouton
clear.setForeground(new Color(102));
clear.setBackground(new Color(16763955));
clear.setName("clear");//renommage du bouton

JLabel loupe=new JLabel();//création d'un label
loupe.setIcon(new ImageIcon(this.getClass().getResource("loupe final.gif")));
//ajout de l'icone au label
Choice zoomType= new Choice();//menu deroulant
zoomType.addItem("Auto");
zoomType.addItem("50%");
zoomType.addItem("80%");
zoomType.addItem("100%");
zoomType.addItem("150%");
zoomType.addItem("200%");
zoomType.addItem("400%");

// redimensionnement des boutons
//pour undo
undo.setMaximumSize(new Dimension(30, 30));
undo.setMinimumSize(new Dimension(30, 30));
undo.setPreferredSize(new Dimension(30, 30));
//pour redo
redo.setMaximumSize(new Dimension(30, 30));
redo.setMinimumSize(new Dimension(30, 30));
redo.setPreferredSize(new Dimension(30, 30));
//pour loupe
loupe.setMaximumSize(new Dimension(30, 30));
loupe.setMinimumSize(new Dimension(30, 30));
loupe.setPreferredSize(new Dimension(30, 30));
//pour la main
main.setMaximumSize(new Dimension(30, 30));
main.setMinimumSize(new Dimension(30, 30));
main.setPreferredSize(new Dimension(30, 30));
//pour la fleche
fleche.setMaximumSize(new Dimension(30, 30));
fleche.setMinimumSize(new Dimension(30, 30));
fleche.setPreferredSize(new Dimension(30, 30));

//ajout des boutons au panel
north.add(undo);
north.add(redo);
north.add(loupe);
north.add(zoomType);
north.add(main);
north.add(fleche);
north.add(save);
north.add(send);
north.add(clear);

//ajout de texte d'information
undo.setToolTipText("Undo");
redo.setToolTipText("Redo");
loupe.setToolTipText("Zoom");
main.setToolTipText("Move");
fleche.setToolTipText("Select");

//ajout des ecouteurs
undo.addActionListener(new EcouteurNorth(undo));
redo.addActionListener(new EcouteurNorth(redo));
save.addActionListener(new EcouteurNorth(save));
send.addActionListener(new EcouteurNorth(send));
main.addActionListener(new EcouteurNorth(main));
fleche.addActionListener(new EcouteurNorth(fleche));
clear.addActionListener(new EcouteurNorth(clear));

/*-------------------------------------------------------------------------
* Ascenceur Horizontal (sud)
------------------------------------------------------------------------*/

JScrollPane hor=new JScrollPane(pictureArea);//creation d'un ascenceur horizontal
JScrollBar horizontal=hor.createHorizontalScrollBar();
horizontal.setAutoscrolls(true);
horizontal.setPreferredSize(new Dimension(this.getHeight()-30,17));//redimensionnement de l'ascenceur horizontal
cp.add(horizontal,BorderLayout.SOUTH);//ajout de l'ascenceur horizontal

/*-------------------------------------------------------------------------
* Ascenceur Vertical (est)
------------------------------------------------------------------------*/

JScrollPane vert=new JScrollPane(pictureArea);//creation d'un ascenceur vertical
JScrollBar vertical=vert.createVerticalScrollBar();
vertical.setAutoscrolls(true);
vertical.setPreferredSize(new Dimension(17,this.getHeight()-20));//redimensionnement de l'ascenceur vertical
cp.add(vertical,BorderLayout.EAST);//ajout de l'ascenceur vertical

setVisible(true);
}

public static void main(String[] args) {
Main principal=new Main();
}

/* (non-Javadoc)
* @see javax.swing.Scrollable#getScrollableTracksViewportHeight()
*/
public boolean getScrollableTracksViewportHeight() {
// TODO Auto-generated method stub
return false;
}

/* (non-Javadoc)
* @see javax.swing.Scrollable#getScrollableTracksViewportWidth()
*/
public boolean getScrollableTracksViewportWidth() {
// TODO Auto-generated method stub
return false;
}

/* (non-Javadoc)
* @see javax.swing.Scrollable#getPreferredScrollableViewportSize()
*/
public Dimension getPreferredScrollableViewportSize() {
// TODO Auto-generated method stub
return null;
}

/* (non-Javadoc)
* @see javax.swing.Scrollable#getScrollableBlockIncrement(java.awt.Rectangle, int, int)
*/
public int getScrollableBlockIncrement(Rectangle arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
return 0;
}

/* (non-Javadoc)
* @see javax.swing.Scrollable#getScrollableUnitIncrement(java.awt.Rectangle, int, int)
*/
public int getScrollableUnitIncrement(Rectangle arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
return 0;
}

}
0