2009-04-11 8 views
0

Je souhaite afficher un ensemble d'images (avec le texte associé) dans ma fenêtre. Je veux parcourir à travers eux en utilisant un bouton précédent et un autre. Jusqu'à présent, j'ai seulement été en mesure d'associer l'image avec un JLabel. =/Configuration d'une galerie d'images avec NetBeans

Comment puis-je faire le reste? Dois-je utiliser un conteneur différent pour l'ensemble complet? Dois-je charger les images sur une structure de données comme ArrayList, ou est-ce suffisant pour les conserver dans un dossier? Comment puis-je ajouter la gestion des événements de sorte que le fait d'appuyer sur le bouton affiche l'image suivante ou précédente?

Voici un screenshot de ce que j'ai jusqu'ici.

Répondre

1

Êtes-vous toujours là?

Je suppose que vous avez trouvé comment charger le chemin de chacune de vos images (si elles sont dans le même dossier). Vous devez stocker le chemin d'accès du répertoire dans une variable globale, puis le nom de chaque image dans un vecteur si vous voulez les parcourir. Il suffit de stocker le nom des fichiers, pas les images entières. Vous devez également stocker l'index de l'image en cours en tant que variable globale.

Si vous utilisez un JFrame comme la fenêtre principale, vous devez spécifier qu'il met en œuvre la ActionListener classe ainsi:

public class MyClass extends JFrame implements ActionListener 

Ensuite, vous devez joindre le gestionnaire d'événements à vos boutons (JButton). Celle-ci doit être placé à l'intérieur du constructeur de votre fenêtre (MyClass):

nextButton.addActionListener(this); 
previousButton.addActionListener(this); 

Après avoir mis en œuvre ActionListener, votre classe doit définir la méthode actionPerformed. A l'intérieur, vous devez changer le contenu de l'image en fonction du bouton qui a été pressé.

public void actionPerformed(ActionEvent e) 
{ 
    Object o = e.getSource(); 
    if(o == nextButton) 
    { 
      currentIndex++; 
      if(currentIndex == vectorImages.size()) 
      { 
       currentIndex = 0; 
      } 
      //Change the image in the JLabel 
      label.setIcon(new ImageIcon(vectorImages.get(currentIndex))); 
    } 
    else 
    { 
      //Iterate backwards 
    } 
} 

Hope this helps ...

+1

Cela a été résolu il y a longtemps à l'aide approche similaire. Merci pour votre réponse, je l'accepte parce que le projet a fini par utiliser presque le même code. – andandandand