|
|
|
|
Bonjour,
Comment ecrire un programme en java qui fait une pagination dynamique c'est à dire qui affiche 100 elements par liste en cliquant sur un bouton suivant pour alller à la page suivante jusqu'à la fin avoir un bouton precedent(pour revenir au debut) ou bouton quitter pour sortir?
Configuration: Windows 2000 Internet Explorer 6.0
Bonjour,
|
J'ai presque le même problème que Sergent71, sauf que pour moi mon programme consulte une base de données, et pour chaque ligne il insère 1 boutons et un label dans un JPanel, et ce dernier mis dans le JPanel principale.
|
Ok, donc tu as déjà développer une bonne partie et je vois déjà où se situe ton erreur. Seulement il faut que tu post ton code ici même (surtout la partie où tu attribut les boutons à chaque ligne).
|
Bonjour,
|
Effectivement ça ne peut pas aller. Une création dynamique de la sorte ne marchera pas.
|
Le début c'est tout à fait clair, j'y ai même songé. mais ce que j'ai pas compris c'est :
|
Ce que je veux dire c'est que ta classe de Bouton doit implémenter l'interface ActionListener :
public class MyButton extends JButton implements ActionListener {
private int id = -1;
private OtherClass oClass = null;
/**
* MyButton
* Default class constructor
* @param theId int
*/
public MyButton ( int theId ){
super();
this.id = theId;
}
/**
* MyButton
* Main class constructor
* @param theId int
* @param theClass OtherClass
*/
public MyButton ( int theId, OtherClass theClass ){
this(theId);
this.oClass = theClass;
}
/* (non-Javadoc)
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed(ActionEvent e) {
// --- Call generic method of class manager
// with specific parameter when action is performed on the button
if ( oClass != null )
oClass.myGenericAction(this.id);
}
}
Voilà, le squellette de ta classe de bouton (gros modo bien sur). Elle étends la classe JButton et implémente l'interface ActionListener, dont la méthode actionPerformed a été définie (avec son traitement) de sorte qu'une action soit lancée lorsque l'on clique sur un objet de cette classe. Ce que je disais à propos du hic, c'est qu'il faut que cette classe de bouton puisse appeler le traitement a faire depuis ton autre classe (celle qui créer les boutons, ou une autre selon l'architecture des classes de ton projet), la classe chargée de faire le traitement. Dans l'exemple ci-dessus, tu vois donc qu'il y a un constructeur dont le deuxième paramètre est un objet de cette autre classe. Ce qui veut dire que dans ta classe de création des boutons, tu aurais ce code pour créer un nouveau bouton : public void rempli ( ){
int i = 1;
MyButton newButton = new MyButton(i,this);
newButton.set.... // --- Tu peux appeler le méthode de la classe JButton pour remplir ton bouton
}
public void myGenericAction( int theId ){
// --- Ici tu fais le traitement que tu dois faire lorsqu'un bouton est cliqué
// --- Et tu connais le numéro du bouton puisqu'il est en paramètre.
}
Et voilà un exemple de code de la classe qui construit tes génère tes boutons. Une méthode de génération (rempli), et surtout la méthode accessible publiquement "myGenericAction" qui est appelée par le bouton lorsqu'on clique dessus, avec un identifiant pour savoir sur quel bouton l'utilisateur a cliqué. Est-ce que c'est plus clair ? ~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~ |
Oh merci beaucoup, vraiment c'est génial !
|