Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Comment rendre un composant.

1 view
Skip to first unread message

Alexandre

unread,
Jul 12, 2004, 6:54:25 PM7/12/04
to
Bonjour,
Dans un programme que j'écrit, j'ai créé un composant graphique
personalisé (extends JPanel), mais il ne peut s'afficher correctement
que si sa hauteur et sa largeur son identique. Peut-on forcer les
dimensions du composant à être carrées tout en autorisant les
redimensionnemnts de son Conteneur (en l'occurence un JPanel avec un
GridLayout) ?

Merci d'avance.

Alexandre

unread,
Jul 12, 2004, 6:55:12 PM7/12/04
to
Le sujet était : "Comment rendre un composant CARRE", excusez-moi.

Alexandre

unread,
Jul 12, 2004, 7:00:40 PM7/12/04
to
Excusez-moi encore, je n'avais pas vu que mon message était bourré de
fautes. Désolé.

Christophe M

unread,
Jul 13, 2004, 3:55:30 AM7/13/04
to
Alexandre wrote:


Essaye de surcharger ,dans ton composant, les méthodes de gestion des
dimensions : getPreferredSize(), setMaximumSize(), setMinimumSize,
setSize(), setBounds(), getHeight(), getWidth(), etc...

Soit tu lances une exception si les dimensions sont pas "carrées", soit
tu les reclacules pour que ton composant soit toujours carré.

Pimousse

unread,
Jul 13, 2004, 10:58:27 AM7/13/04
to
> Peut-on forcer les
> dimensions du composant à être carrées

oui

> tout en autorisant les
> redimensionnemnts de son Conteneur (en l'occurence un JPanel avec un
> GridLayout) ?

est ce à dire que ton composant est de taille fixe et que le conteneur
dans lequel il est varie en taille ?
si oui, il te suffit de passer une Dimension en paramètre de ton
composant et de faire (dans la classe de ton composant) :
this.setSize(cetteDimension);
this.setMinimumSize(cetteDimension);
this.setMaximumSize(cetteDimension);
this.setPreferredSize(cetteDimension);

si par contre ton composant doit se redimensionner en restant carré ....
faudrait toujours passer une dimension en paramètre de ton composant et
connaitre le rapport entre la taille de ton composant et celle de la
fenêtre ... et redimensionner à chaud ...
enfin pour dire que dans ce cas de figure je vois pas bien comment faire.

@++
Pimousse

Alexandre

unread,
Jul 13, 2004, 11:31:30 AM7/13/04
to
Pimousse wrote:

> si par contre ton composant doit se redimensionner en restant carré ....


Exactement

J'ai essayé ça :

public class Carre extends JPanel{
JComponent contenu ;
Carre (JComponent contenu){
super();
this.contenu=contenu;
}
public void paint(Graphics g) {
int h = getHeight () ;
int l = getWidth () ;
int min =l ;
if (h<l) min = h ;
contenu.setSize(min,min);
contenu.paint(g);
}
}

mais visiblement, ça ne marche pas.

0 new messages