[java]imageicon probleem

Pagina: 1
Acties:

  • Patrickvs
  • Registratie: Juli 2000
  • Laatst online: 16-05 07:44
Ik heb in een programmaatje een toolbar met daarop buttons en daarin een imageicon.....maar nu wil dat plaatje niet verschijnen in het programma .... button blijft gewoon leeg, ik vind het echt heel vaag :
code:
1
2
      newButton = new JButton(new ImageIcon("icons/new.gif"));
      newButton.setToolTipText("New");

ik heb het programma in een jar file gezet en als ik het vanuit daaruit run dan lukt het nog niet, terwijl de plaatjes wel in de goeie dir staan.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Meestal kan dan toch je plaatje niet gevonden worden...

In dit geval is het een stuk beter om een URL mee te geven. Ik ben sowieso nooit echt een fan van het meegeven van strings ipv Files of URLs.

In de source kan je dit vinden:
public ImageIcon(String filename, String description) {
image = Toolkit.getDefaultToolkit().getImage(filename);
if (image == null) {
return;
}
this.filename = filename;
this.description = description;
loadImage(image);
}
Daarom werkt jouw oplossing denk ik niet als het icon in de jar file staat.

Gberuik dus Class.getResource(..) om een URL te verkrijgen naar de image-file. Daarmee maak je daarna een ImageIcon aan. Denk eraan om een / voor het path te zetten als je niet wil dat de package naam wordt voorgevoegd (zie de APIs voor duidelijk uitleg hierover ;) ).

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Ja dat is een goeie ja, de API doorlezen :) Of zoeken op google, of de Java Tutorial (ergens te vinden op javasoft.com, vraag me niet waar, het is een rommelige site)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
MisterJava: Ja dat is een goeie ja, de API doorlezen :)
Je leert snel >:) .
Of zoeken op google, of de Java Tutorial (ergens te vinden op javasoft.com, vraag me niet waar, het is een rommelige site)
Simpel onder documentation te vinden. Of direct via een logische url: http://java.sun.com/tutorial . Valt wel mee met dat rommelig IMNSHO :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Op donderdag 25 oktober 2001 19:38 schreef mbravenboer het volgende:

[..]

Je leert snel >:)
KLOPT :)
Valt wel mee met dat rommelig IMNSHO :) .
Ik heb anders tien minuten gezocht naar de download van de JavaBeans SDK en toen bleek ie ineens te zijn opgedoken in het rechterframe van de pagina :+

  • Patrickvs
  • Registratie: Juli 2000
  • Laatst online: 16-05 07:44
jaja...de tutorial doorkijken doe ik ook.... dit geeft de tutorial als oplossing :
code:
1
2
3
4
//In initialization code:
    ImageIcon leftButtonIcon = new ImageIcon("images/right.gif");
    ImageIcon middleButtonIcon = new ImageIcon("images/middle.gif");
    ImageIcon rightButtonIcon = new ImageIcon("images/left.gif");



maar dit is dus hetzelfde wat ik heb

Verwijderd

Tsja... dan is de tutorial op dit punt toch minder duidelijk dan ik had verwacht :(

  • Patrickvs
  • Registratie: Juli 2000
  • Laatst online: 16-05 07:44
mjah....ik snap er nu ook niets meer van....

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
-P@tRiCk-: jaja...de tutorial doorkijken doe ik ook.... dit geeft de tutorial als oplossing
Ik denk dat de images in dit geval in een submap staan en niet in de jar?

Probeer eens:
code:
1
2
URL imageURL = this.getClass().getResource("/images/new.gif");
ImageIcon icon = new ImageIcon(imageURL);

Dit zou goed moet werken. Ik gebruik het in ieder geval altijd op deze manier.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Patrickvs
  • Registratie: Juli 2000
  • Laatst online: 16-05 07:44
hmmmz......dit werkt wel

nou bedankt in ieder geval, zal dit dan ook maar blijven gebruiken

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op donderdag 25 oktober 2001 19:30 schreef mbravenboer het volgende:
Meestal kan dan toch je plaatje niet gevonden worden...

In dit geval is het een stuk beter om een URL mee te geven. Ik ben sowieso nooit echt een fan van het meegeven van strings ipv Files of URLs.

In de source kan je dit vinden:
[..]

Daarom werkt jouw oplossing denk ik niet als het icon in de jar file staat.

Gberuik dus Class.getResource(..) om een URL te verkrijgen naar de image-file. Daarmee maak je daarna een ImageIcon aan. Denk eraan om een / voor het path te zetten als je niet wil dat de package naam wordt voorgevoegd (zie de APIs voor duidelijk uitleg hierover ;) ).
Als je met een webstart gaat werken dan kun je het beste class.getClassLoader gebruiken, vb:
code:
1
new ImageIcon(Editor.class.getClassLoader().getResource("com/jph/expertSysteem/resources/toolbar/Find.png"))

Werkte eerst ook alleen met Class.getResource(..) maar onder webstart worden de icoontjes niet meer gevonden. Dus ik doe het nu maar meteen goed..

  • Patrickvs
  • Registratie: Juli 2000
  • Laatst online: 16-05 07:44
hmmzzz... 't word er niet makkelijker op ;)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Alarmnummer: Als je met een webstart gaat werken dan kun je het beste class.getClassLoader gebruiken, vb:
Hum, Class.getResource gebruikt de SystemClassLoader:
public java.net.URL getResource(String name) {
name = resolveName(name);
ClassLoader cl = getClassLoader0();
if (cl==null) {
// A system class.
return ClassLoader.getSystemResource(name);
}
return cl.getResource(name);
}
Waarom zou hij eigenlijk niet via de SystemClassLoader werken? Ze adviseren in de Java Web Start developer guide idd Class.getClassLoader().getResource. Waarom zou er uberhaupt voor gekozen om bij Class.getResource de SystemClassLoader te gebruiken?

Goeie tip in ieder geval :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op donderdag 25 oktober 2001 20:12 schreef mbravenboer het volgende:

[..]

Hum, Class.getResource gebruikt de SystemClassLoader:
[..]

Waarom zou hij eigenlijk niet via de SystemClassLoader werken? Ze adviseren in de Java Web Start developer guide idd Class.getClassLoader().getResource. Waarom zou er uberhaupt voor gekozen om bij Class.getResource de SystemClassLoader te gebruiken?

Goeie tip in ieder geval :) .
Heb jij al iets met webstart en dan met name jdk1.4 beta (1 of 2) gedaan? Want wat ik ook probeer hij accepteerd die 1.4beta niet. Zelfs met de verwijzing naar de download site (die niet werkt) zoals werd geadviseerd..

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Alarmnummer: Heb jij al iets met webstart en dan met name jdk1.4 beta (1 of 2) gedaan? Want wat ik ook probeer hij accepteerd die 1.4beta niet. Zelfs met de verwijzing naar de download site (die niet werkt) zoals werd geadviseerd..
Nee (werk zelf eigenlijk niet zo veel met Web Start ;) omdat ik het niet nodig heb), maar heb wel van dit probleem gehoord. De betas worden niet meegerekend bij de producten releases, waardoor 1.3+ bijvoorbeeld niet de 1.4.0 beta zal accepteren. Je kunt er wel direct naar verwijzen, maar ik heb geen idee waar ik gelezen heb hoe dat moet... :( . Of bedoel je dit met die directe verwijzing naar de download-site?

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op donderdag 25 oktober 2001 20:28 schreef mbravenboer het volgende:

[..]

Nee (werk zelf eigenlijk niet zo veel met Web Start ;) omdat ik het niet nodig heb), maar heb wel van dit probleem gehoord. De betas worden niet meegerekend bij de producten releases, waardoor 1.3+ bijvoorbeeld niet de 1.4.0 beta zal accepteren. Je kunt er wel direct naar verwijzen, maar ik heb geen idee waar ik gelezen heb hoe dat moet... :( . Of bedoel je dit met die directe verwijzing naar de download-site?
Je kunt inderdaad niet met 1.3+ de 1.4 beta`s pakken. En als je al een beta wilt gebruiken dan moet moet je dit zeggen:
code:
1
<j2se version="1.4-beta" href="http://java.sun.com/products/autodl/j2se"/>

ergens op:
http://java.sun.com/products/javawebstart/docs/developersguide.html


Maar dit accepteerd webstart ook niet. Volgens mij kan hij die beta gewoon niet vinden. En ik heb ook al veel aan de string zitten sleutel.. maar wat ik ook die.. hij vind hem niet.. (heb ook gekeken hoe die jdk onder webstart word genoemd, maar wou ook niet lukken).

Maarja.. tis ook een beta :)
Pagina: 1