POsition applet page HTML

Résolu
Messages postés
50
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
24 avril 2008
-
Messages postés
50
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
24 avril 2008
-
Bonjour tout le monde .
J'ai mon applet qui se centre verticalement au milieu de la page.
Moi je veux qu'il se mette en haut et qu'il y reste.
HELP SVP.
Merci

code :

//******* affichage du tableau ********


// pour que le composant utilise toute la place
c.fill = GridBagConstraints.BOTH;


// première zone : le titre du tableau
c.gridwidth = GridBagConstraints.REMAINDER;
c.gridheight = 1;
c.weightx = 4;
titretab = new Label(titre, Label.CENTER);
if (titre.length() < 50) {
titretab.setFont(new Font("Helvetica", Font.PLAIN, 22));}
else {titretab.setFont(new Font("Helvetica", Font.PLAIN, 10));}
titretab.setBackground(Color.white);
gridbag.setConstraints(titretab, c);
add(titretab);


// 2e zone: le tableau, avec un panel où le mettre
Panel tableau = new Panel();
c.gridwidth = GridBagConstraints.REMAINDER;
c.gridheight = 1;
c.weightx = 20;
GridBagLayout grille = new GridBagLayout();
GridBagConstraints cg = new GridBagConstraints();
cg.insets = new Insets(1,1,1,1); // écart entre les labels du tableau
gridbag.setConstraints(tableau, c);
tableau.setBackground(Color.white);


tableau.setLayout(grille);
Color coule = new Color(219,226,249); // couleur du fond du tableau


// composants du tableau
setFont(new Font("Arial", Font.PLAIN, 12));
cg.fill = GridBagConstraints.BOTH;
cg.weighty = 1;


// 1ère ligne - co +1 colonnes, première colonne taille 2
// on n'affiche que 8 caractères par titre de colonne
Label titres[] = new Label[co+1];
for (int i = 0; i<co+1; i ++) {
String ss;
ss = col[i];
if (i >0 & ss.length() > 7) {ss = ss.substring(0,8);}
titres[i] = new Label(ss, Label.CENTER);
titres[i].setBackground(coule);
if (i == 0 ) {
cg.weightx = 2;
}
else {
cg.weightx = 1;
}
if (i == co) {
cg.gridwidth = GridBagConstraints.REMAINDER; //end row
}
grille.setConstraints(titres[i],cg);
tableau.add(titres[i]);
}


// autres lignes
cg.gridwidth = 1;
Label ele[][] = new Label[l+1][co+1];

// transformation du tableau en lettres pour affichage dans le label
String tablettres[][] = new String[l][co];
for (int j = 0; j<l; j ++){
for (int i =0; i<co; i ++){
tablettres[j][i] = Double.toString(tab[j][i]);
}
}
// affichage
for (int j = 0; j<l; j ++){
cg.weightx = 2;
cg.gridwidth = 1;
ele[j][0] = new Label(lig[j], Label.LEFT);
ele[j][0].setBackground(coule);
grille.setConstraints(ele[j][0],cg);
tableau.add(ele[j][0]);


for (int i = 0; i<co; i ++) {
cg.weightx = 1;
ele[j][i+1] = new Label(tablettres[j][i], Label.CENTER);
ele[j][i+1].setBackground(coule);


if (i == co-1) {
cg.gridwidth = GridBagConstraints.REMAINDER; //end row
}
grille.setConstraints(ele[j][i+1],cg);
tableau.add(ele[j][i+1]);
}
}


add(tableau);
// 4e zone : les consignes
c.gridwidth = GridBagConstraints.REMAINDER;
c.gridheight = 1;
setFont(new Font("Arial", Font.PLAIN, 12));
consignes2 = new Label("Cliquez sur un des boutons pour faire un graphique. ", Label.CENTER);
gridbag.setConstraints(consignes2, c);
consignes2.setBackground(Color.yellow);
add(consignes2);


// 3 boutons pour faire un graphique
b5 = new Button(" courbes ");
b6 = new Button(" bâtons ");
b7 = new Button(" nuage de points ");

add(b5);
b5.addActionListener(this);
add(b6);
b6.addActionListener(this);
add(b7);
b7.addActionListener(this);





// taille de la fenêtre (à donner dans la page html)
setSize(400 + 20 * co, 220 + 10 * l);

7 réponses

Messages postés
50
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
24 avril 2008

Ca y est, j'ai la solution :
La page HTML doit etre avec une frame en 2 parties : celle du bas qui contient l'applet et celle du haut dans laquelle on choisit le fichier texte et avec du javascript on compte le nombre de lignes que contient le fichier puis on lance la seconde frame ( celle de l'applet) grace a du javascript qui va recuperer les info de la frame d'en haut qui a compté le nb de ligne et va generer le code HTML avec la bonne taille pour l'applet : si le fichier texte a peu de lignes : l'applet sera petit, si le txt a bcp de lignes, l'applet sera grand !
C en quelque sorte du HTML dynamique !
Voilou, a ma connaissance c la seule solution.
++

RoXXe
Messages postés
5367
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
27 janvier 2022
111
Salut,



la position de ton applet dans une page web depend uniquement de ton fichier web(html,xhtml,php,...)

WORA
Messages postés
50
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
24 avril 2008

non c'est un bug dans le code : l'applet prend toute la place mais le tableau et les boutons sont centrés au milieu avec bcp de place au dessus et au dessous.
En bidouillant j'arrive a faire remonter le tableau mais pas les boutons qui restent seuls a u milieu de la page
Messages postés
5367
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
27 janvier 2022
111
Vas faire un tour ICIil y a plein de conseil pratique pour t'eviter ce genre de bug

WORA
Messages postés
50
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
24 avril 2008

Merci.
Maintenant que j'ai rectifié le code, J'ai le tableau et les boutons en haut de la page comme je voulais mais le porb c que le tableau et de taille variable : il peut contenir tres bien 2 données que 500.
Le probleme c dans le html quand je donne une taille a l'applet , si je la donne trop petite ca me bouffe des données du tableau et si je la mets trop grande ca me fait des boutons (qui sont en bout du tableau) qui comblent le vide (ils peuvent donc etre énormes.
Comment puis je faire pour que la page HTML s'adapte a la taille de l'applet (qui depend des données qu'il y a ds son tableau)?
Messages postés
388
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
3 mai 2006
1
Coucou,

je ne pense pas que cela soit possible... la page est chargée avant que l'applet soit chargé et donc avant qu'elle n'ait d'information concernant son contenu.

Essaye de laisser ton applet avec une taille fixe et met ton tableau dont les données peuvent etre "bouffées" dans un JScrollPane.
Messages postés
50
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
24 avril 2008

Merci pour ta solution.
:-)