Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec GridLayout

    5 avril 2011 à 18:38:29

    Bonsoir tout le monde,

    Je rencontre un problème avec mon GridLayout, en effet je crée une GridLayout de max lignes (en fonction du nombre d'image que j'ai dans mon répertoire) et de 2 colonnes. Dans ma première colonne je souhaite afficher l'image puis dans ma seconde afficher de nom de l'image pour faire en quelque sorte une liste.

    Le problème est au niveau de l'affichage, par exemple j'ai plusieurs images sur la même ligne alors que j'ai seulement 2 colonnes.

    public class Application 
    {
        protected Fenetre fen = new Fenetre();
    	public static JTextField putNameApplication = new JTextField("Nom de l'application");
    
    	public Application()
    	{
        	Fenetre.type = "Ajout";
        	
            fen.setTitle("Ajout application");
            fen.setSize(300, 300);
            fen.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
            fen.setLocationRelativeTo(null);
    
            fen.setVisible(true);
    	}
    	
        public void listDirectory()
        {
        	ArrayList<String> listeApplication = new ArrayList<String>();
        	
        	File path = new File("C:\\Users\\chichi\\Documents\\Dessin\\");
        	
        	File [] files = path.listFiles();
        	
        	for(int i=0; i < files.length ; i++)
        	{
        		if( (files[i].getName().indexOf("png") != -1) && (files[i].getName().indexOf("Nom de l'application") == -1) )
        		{
        			listeApplication.add(files[i].getName()); 
        			System.out.println(files[i].getName());
        		}
        	}
        	
        	affichageApplication(listeApplication, listeApplication.size());
        }
        
        public void affichageApplication(ArrayList<String> listeApplication, int max )
        {
        	fen.setLayout(new GridLayout(max, 3));
    
        	for(int i=0; i < max; i++)
        	{
        		JLabel image = new JLabel( new ImageIcon(listeApplication.get(i)));
        		JLabel nameApplication = new JLabel(listeApplication.get(i));
        		
        		fen.getContentPane().add(image);
        		fen.getContentPane().add(nameApplication);
        	}
        }
    }
    


    Peut être qu'il y a une méthode plus simple pour réaliser ce que je souhaite faire.
    Merci d'avance pour votre aide.
    • Partager sur Facebook
    • Partager sur Twitter

    Problème avec GridLayout

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown