Toon posts:

[Java] Lokaal plaatje wordt niet getoond

Pagina: 1
Acties:

Verwijderd

Topicstarter
Als ik de volgende code in JCreator uitvoer krijg ik geen plaatje te zien.
Als ik echter het plaatje in de map zelf zet, en dan de variabele pad verander in ....jpg doet hij het wel.
Verder werkt het ook niet als ik pad verander in:

D:\\JCreatorLE\\MyProjects\\upload\\......jpg

Het heeft volgens mij niks te maken met het signen, waar ze het op het forum over hebben als je het applet op het web wil gaan gebruiken, want zo ver ben ik nog niet.

Iemand een idee, om een plaatje te openen, als je het pad hebt. De variabele directory en filenaam kloppen gewoon, als ik die op het scherm laat weergeven staat er:

D:\JCreatorLE\MyProjects\upload\......jpg

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.awt.*;
import java.applet.*;
import java.awt.event.*;


public class Upload extends Applet{
 private Button bt1;
 private boolean file = false;
 private Image afbeelding;
 private String filenaam;
 private String directory;
 private String pad;
 
 public void init() {
  
  this.setLayout( null );
  //this.setLayout(new BorderLayout(15,15));
  bt1 = new Button("Selecteer file");
  bt1.setBounds( 10, 10, 200, 25 );
  this.add(bt1);
  
 }
 
 public void paint( Graphics g ) {
    if (file) {
        g.drawImage ( afbeelding, 50, 70, 400, 300, this );
        g.drawString (pad, 50, 50);
    }
    
 }
 
 public boolean action(Event e1,Object arg){
  if (e1.target==bt1) {
   Frame f1 = new Frame();
   FileDialog d = new FileDialog(f1, "Open File", FileDialog.LOAD);
   ///d.setSize(300,100);
   d.show();
   d.dispose();
   filenaam = d.getFile();
   directory = d.getDirectory();
   pad = directory + filenaam;
   afbeelding = getImage( getDocumentBase(), pad);
   file = true;
   this.repaint();
   return true;
  } else return super.action(e1,arg);
 }
}

  • joggie
  • Registratie: November 2004
  • Laatst online: 03-02-2025

joggie

Wie niet gek is, is saai

wat doet de d.show; em d.dispose(); op regel 37 en 38 precies??

Joggie ;)


Verwijderd

Topicstarter
d is het filedialog.
Hier kan de gebruiker het image (file) kiezen. Daarna wordt dus de directory en de naam van het bestand uitgelezen.
d.show, d.dispose, het venster wordt weergegeven, en gesloten.

Daarna probeer ik het plaatje dus weer te geven.

Directory en filenaam kloppen, zoals ik al zei.

  • joggie
  • Registratie: November 2004
  • Laatst online: 03-02-2025

joggie

Wie niet gek is, is saai

offtopic, ik zie dat je GetFile en GetDirectory achterelkaar plakt om het pad te krijgen...is er niet een GetPath functie??

Kan het niet zijn dat omdat je de strings aan elkaar plakt, je toch een (niet zichtbaar) karakter mee plakt?

Ik heb verder (helemaal) geen ervaring met java, maar ik zou het in die richting zoeken...

Joggie ;)


Verwijderd

Topicstarter
Als ik de variabele pad print, dan ljikt het goed, maar ik zal even zoeken of er een functie getpath bestaat.

  • martennis
  • Registratie: Juli 2005
  • Laatst online: 16-01 14:17
probeer de dispose eens aan te roepen nadat je de file(naam) uitgelezen hebt.
met dispose worden misschien zijn resources ook verwijderd.

Verwijderd

Topicstarter
Is me eindelijk gelukt.

het moet zijn:

Java:
1
pad = "file:\\" + directory + filenaam;


En dan wel je applet signen, zodat je de files op de client mag benaderen.

Het resizen is ook gelukt, nu nog even een manier om de plaatjes up te loaden.

Krijg alleen bij de enterprisedt ftp library een java.lang.NoClassDefFoundError

Dit ligt er toch aan dat de package niet goed is geimporteerd? ik gebruik JCreatorLE

Iemkand een idee hoe ik deze foutmelding kan oplossen?

  • martennis
  • Registratie: Juli 2005
  • Laatst online: 16-01 14:17
staat classpath goed?
heb je de package op de goede plek staan?
Pagina: 1