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
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
)
Als je andere comentaar hebt op de code ofzo laat ook maar weten
sowieso al bedankt voor de hulp.
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.