begin process at 2012 02 13 04:49:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Général

 > 

Rafraichissement d'une table


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Rafraichissement d'une table

vendredi 22 septembre 2006 à 13:59:34 | Rafraichissement d'une table

Stubbornman

Bonjour,

J'ai quelques soucis lors du rafraichissement d'une table.
Pour commencer, je pose le décor.

Je crée une table personnelle qui comporte des Header de colonnes et de lignes.
Je met cette table dans un scrollpane, et je met le tout dans une fenêtre.
Il m'est alors possible de redéfinir la taille de la table par l'intermédiaire de deux JTextField et d'un bouton de validation.

Voilà à quoi ressemble la fenêtre à son ouverture:


Lorsque je définis une taille pour ma table qui fait qu'elle soit plus grande que la fenêtre, tout se passe bien:



Mais lorsque je commence à vouloir faire glisser la vue, tout se corse:



Je n'arrive pas bien à savoir à quoi cela peut être dû.
Je préciserais que si la table initiale est directement trop grande pour la fenêtre, il n'est pas nécessaire de faire un redimensionnement de cette dernière pour que cela se produise...

Pour redimensionner ma table, je me contente de remplacer le Model courant par un nouveau avec la nouvelle taille.

Si vous avez une idée, n'hésiter pas... Je passerais les morceaux de sources qui pourront venir en aide à votre réflexion.

Merci de votre aide.
vendredi 22 septembre 2006 à 16:07:52 | Re : Rafraichissement d'une table

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Mais qu'est-ce que vous avez tous avec les JTable en ce moment, c'est dingue cà quand même ! ;)

Sinon, oui en effet, sans code on va pas pouvoir faire grand chose pour toi !


vendredi 22 septembre 2006 à 16:40:42 | Re : Rafraichissement d'une table

Stubbornman

En fait, je ne vais pas vous asser tout mon code, ce serait fastidieux (il est relativement conséquent tout de même).
Par contre si vous me dites quelle composante peut bien créer ce problème, je pourrais vous donenr le code correspondant.

J'ajouterais juste que le problème ne se pose pas sur un déplacement vertical de ma fenêtre...

Pour être un peu plus complet tout de même, voici les fichiers que j'utilise:
MGTable.java
MGTableModel.java
MGRowHeader.java
MGRowHeaderUI.java
MGRowHeaderRenderer.java
MGColoredTableCellRenderer.java

Le fichier qui attire ma curiosités est:
MGRowHeaderUI.java  où je redéfinit paint().

la voici :

public void paint(Graphics g, JComponent c)

{

             Rectangle clipBounds = g.getClipBounds();

if (header.getColumnModel() == null )

return ;

int column = 0;

boolean drawn = false ;

int draggedColumnIndex = -1;

Rectangle draggedCellRect = null ;

Dimension size = header.getSize();

Rectangle cellRect = new Rectangle(0, 0, size.width, size.height);

Enumeration enumeration = header.getColumnModel().getColumns();

while (enumeration.hasMoreElements())

{

TableColumn aColumn = (TableColumn)enumeration.nextElement();

int columnMargin = header.getColumnModel().getColumnMargin();

cellRect.height = aColumn.getWidth() + columnMargin;

// Note: The header cellRect includes columnMargin so the

// drawing of header cells will not have any gaps.

if (cellRect.intersects(clipBounds))

{

drawn = true ;

if (aColumn != header.getDraggedColumn())

{

paintCell(g, cellRect, column);

}

else

{

// Draw a gray well in place of the moving column

g.setColor(header.getParent().getBackground());

g.fillRect(cellRect.x, cellRect.y,

cellRect.width, cellRect.height);

draggedCellRect = new Rectangle(cellRect);

draggedColumnIndex = column;

}

}

else

{

if (drawn)

// Don't need to iterate through the rest

break ;

}

cellRect.y += cellRect.height;

column++;

}

// draw the dragged cell if we are dragging

TableColumn draggedColumnObject = header.getDraggedColumn();

if (draggedColumnObject != null && draggedCellRect != null )

{

draggedCellRect.x += header.getDraggedDistance();

paintCell(g, draggedCellRect, draggedColumnIndex);

}

}

private void paintCell(Graphics g, Rectangle cellRect, int columnIndex)

{

TableColumn aColumn = header.getColumnModel().getColumn(columnIndex);

TableCellRenderer renderer = aColumn.getHeaderRenderer();

if ( renderer == null )

{

aColumn.setHeaderRenderer(new MGRowHeaderRenderer());

renderer = aColumn.getHeaderRenderer();

}

Component component = renderer.getTableCellRendererComponent(

header.getTable(), aColumn.getHeaderValue(),

false , false , -1, columnIndex);

rendererPane.add(component);

rendererPane.paintComponent(g, component, header, cellRect.x, cellRect.y,

cellRect.width, cellRect.height, true );

}



Mais comme j'ai dit précedemment, je ne sais pas si c'est ici que se trouve le problème...

Merci de m'aider.

samedi 23 septembre 2006 à 10:04:00 | Re : Rafraichissement d'une table

Stubbornman

Réponse acceptée !
Bonjour.

Il semblerait que c'est effectivement le redessin qui ne fonctionne pas très bien.
Pour palier à ce problème... J'ai tout simplement changé mon fonctionnement.

Plus nécessaire de redessiner les cellules.

En effet, j'ai créé un MGScrollTable.java dans lequel je crée un JScrollPane auquel j'attache ma table, et je lui définit un RowHeader avec le MGHeaderRenderer et ca marche très bien.

Merci tout de même de votre participation.


Cette discussion est classée dans : taille, table, met, fenêtre, rafraichissement


Répondre à ce message

Sujets en rapport avec ce message

rafraichissement fenêtre [ par lafolle24320 ] Bonjour à tous, JE développe une application sur la base d'une applet que j'affiche dans un panel normal (je travaille pour l'instant sur une même mac taille des fenêtres [ par gphyW4L ] Bonjour,je n'arrive pas a ouvrir mes fenêtres en plein écran...Elles s'ouvrent en occupant tout l'écran mais une partie de la fenêtre est cachée derri Empêcher un redimentionnement trop petit de la fenêtre [ par Foub12 ] Bonjour,est-il possible d'empêche l'utilisateur de réduire la taille de la fenêtre en deçà de la taille minimale des composants qui l'a compose de man taille de l'intérieur d'une fenêtre [ par Patrice H ] Je sais retrouver la taille de l'écran (sa résolution) mais je voudrai connaître la taille utilisable d'une fenêtre c'est à dire sans la barre de titr JButton [ par joduak ] Hey! Voilà un nouveau problème... Je n'arrive pas à supprimer un JButton de ma fenêtre... En fait, j'essaie de faire en sorte que lorsque je clique un CheckBox a chaque ligne d'une table [ par hlimaiem ] Limaiem heykelComment inserrer un CheckBox dans chaque ligne d'un JTable (la syntaxe exacte) puisque ce checkbox designera si l'element sera supprimer Afficher une image à la taille d'un bouton [ par NeT0n ] Bonjour,J'aimerai savoir si il est possible de faire en sorte que l'image que l'on met sur un bouton prenne tout la place du bouton.code du genre : JB menu + jeu [ par joduak ] Bonsoir! Je souhaiterais simplement vous demander si c'est bien lorsqu'on code en SWING un menu d'un jeu avec les rubriques Jouer, Options,et Quitter programmation graphique+java+Password [ par fredom ] Je débute ds la programmation java et suis confronté à un pb ds le cadre d'un projet en école d'ingénieur!Voila le pb:J'ai créé une fenêtre ds laquell plein écran [ par joduak ] Bonjour! Je me demande si c'est possible de mettre en plein écran une fenêtre et que ça agrandisse les éléments de la fenêtre? J'utilise la fonction


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,012 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales