Archief - [PROG]-[java] Probleem met layout?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

jeroen65

Legacy Member
Ik ben met een klein projectje bezig in java waar ik een applet probeer te maken waarmee je foto's kan uploaden (een beetje zoals bij msn space kan) dus dat je een explorer like venster te zien krijgt waar je alle bestanden van op de harde schijf kunt zien. Nu zit ik hier met een raar probleem. Als ik de map "c:test" laat uitlezen geeft hij alle mappen en bestanden weer die daar in staan. druk ik nu op een map op mijn panel veranderd hij naar de map (vb: c:test/map1) maar nu geeft hij nog enkel de eerste map weer (er staan er 9 in in map1) maar hij maakt ze wel allemaal aan. Ik heb dit probleem enkel als ik setlocatie (die functie die de locatie veranderd) aanroep vanuit mijn mouseclicked. Roep ik deze functie van ergens anders (dus eerst setlocatie("c:test") en dan setlocatie("c:test/map1")) dan werkt het wel :eek: Ik hoop dat ik het een beetje klaar heb uitgelegd :) dit is de code van mijn panel waar ik vermoed dat de fout zit (als je een ander stuk code wilt zien laat maar weten :))

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

public class myPanel extends JPanel implements MouseListener
{
	private String locatie = "c:\\";
	File name;
	ArrayBestand test;
	public myPanel(String cLocatie)
	{
		setLayout(new GridLayout(10,3));
		setLocatie(cLocatie);
	}
	public void setLocatie(String mLocatie)
	{
		System.out.println("Locatie werd veranderd naar: " + mLocatie);
		locatie=mLocatie;
		removeAll();
		test = null;
		name = null;
		UpdateInhoud();
		list();
	}
	public void UpdateInhoud()
	{
		int lengte=0,rij=0,col=3;
		name = new File(locatie);
		if (name.isDirectory()==true)
		{
			lengte = name.list().length;
			rij = lengte/col;
			if(rij*col<lengte)
				rij++;
		}
		setLayout(new GridLayout(rij,col));
		setBackground(Color.WHITE);
		test = new ArrayBestand();
		if(name.exists() == true)
		{
			if(name.isDirectory()==true)
			{
				File inhoud[] = name.listFiles();
				for(File inLos : inhoud)
				{
					bestand tmp = new bestand(inLos.getPath());
					test.setBestand(tmp);
					System.out.println("   -Nieuw bestand: " + inLos.getPath());
					test.getLast().addMouseListener(this);
					add(test.getLast());
					tmp = null;
				}
			}
		}
		System.out.println("Layout: " + getLayout().toString());
		repaint();
	}
	public void mouseClicked(MouseEvent e) 
	{
		bestand tmp2 = (bestand) e.getComponent();
		setLocatie(tmp2.getLoc());
		tmp2 = null;
	}
	public void mouseEntered(MouseEvent e) {}
	public void mouseExited(MouseEvent e) {}
	public void mousePressed(MouseEvent e) {}
	public void mouseReleased(MouseEvent e) {}
}

Als je andere comentaar hebt op de code ofzo laat ook maar weten :) sowieso al bedankt voor de hulp.

jodeman

Legacy Member
Ik weet niet of ge het kunt gebruiken in applet's maar er bestaat een JFileChooser in java waarbij ge voorwaarden kunt opgeven.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan