JTABLE QUI PREND LES DIMENSIONS DE LA JFRAME

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 19 juil. 2007 à 14:08
cs_danimo Messages postés 16 Date d'inscription mercredi 18 juillet 2007 Statut Membre Dernière intervention 15 mars 2009 - 21 sept. 2009 à 19:04
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43510-jtable-qui-prend-les-dimensions-de-la-jframe

cs_danimo Messages postés 16 Date d'inscription mercredi 18 juillet 2007 Statut Membre Dernière intervention 15 mars 2009
21 sept. 2009 à 19:04
Je parlais de MA source TH1_MAN, pas de la tienne bien entendu...
th1_man Messages postés 28 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 24 juillet 2008
28 juin 2008 à 21:48
Pourqoui tu dit "horreur"???
t'a qu'a telecharger mon jeu "Bataille Navale"... tu verra l'utilité.
cs_danimo Messages postés 16 Date d'inscription mercredi 18 juillet 2007 Statut Membre Dernière intervention 15 mars 2009
25 juin 2008 à 20:45
Salut,

J'ai ecri cette horreur il y a un an suite a une demande
precise (sur un autre site) et voila.

Merci a toi TH1.

Cordialement.

Dan.
th1_man Messages postés 28 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 24 juillet 2008
25 juin 2008 à 13:47
Salut,
Moi j'ai une autre méthode qui est plus générale et meilleur:
tu crée:
- une classe "table()" extends JPanel de propriété layout "GridLayout(x,y)"(x:nbre lignes, y:nbre de colonnes) qui represente la table.
- une classe "cellule()" extends JPanel qui représente une cellule.
- Dans le constructeur de la classe "table" tu fait:
for (int i=0; i<x; i++) {
for (int j=0; j<y; j++) {
add(new cellule());
}
}
- Dans la classe principale tu fait:
"table panelx = new table();"
puis tu fait "contentPane.add(panelx,null);"
- A la fin tu change la proprieté layout du panel "contentpane"(le panel principale) en "GridBagLayout".

Je sais ca parait un peu diffcile, mais c'est plus générale.
cs_danimo Messages postés 16 Date d'inscription mercredi 18 juillet 2007 Statut Membre Dernière intervention 15 mars 2009
19 juil. 2007 à 21:01
Je n'arrivais plus a me connecter....

Tout a fait d'accord.
A l'origine c'etait ainsi: if (heightRw < 16) {
J'ai ajoute if (heightRw < 1) pour eviter le "trap"
Ca fonctionnait et c'est reste.

je vais modifier mais ainsi: if (heightRw < 1) {
toujours pour eviter le "trap".

Merci.
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
19 juil. 2007 à 15:04
ca j'ai bien compris, mais ce que tu comprends pas apparement, c'est que si heightRw < 1 alors heightRw est forcément < 16 !

Donc dans tout les cas, la deuxième condition ne sera jamais testé ! Et donc, la deuxième condition n'est fait qu'alourdir inutilement le code.

Tu peux donc remplacer la ligne :
if ( (heightRw < 16) || (heightRw < 1) )
Par :
if (heightRw < 16) {
Qui fera exactement la même chose !
cs_danimo Messages postés 16 Date d'inscription mercredi 18 juillet 2007 Statut Membre Dernière intervention 15 mars 2009
19 juil. 2007 à 14:43
Parceque si l'on diminue la hauteur de la frame au maximum par erreur heightRw est < 1 ce qui provoque un "trap".
D'autre part j'ai choisi de limiter cette diminution pour que heightRw ne soit pas < 16, meme si on ne diminue pas jusqu'a < 1, 16 pix. etant la taille initiale.
Compile et essaie.
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
19 juil. 2007 à 14:08
A quoi sert ta source au juste ? une JTable est redimensionnée selon la taille de son container de base.

Hum, sinon à quoi peut bien servir :
(heightRw < 16) || (heightRw < 1)

Si c'est inférieur à 1, c'est forcément inférieur à 16 !
Rejoignez-nous