Toon posts:

[JAVA] image weergeven werkt niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Goed, ik heb dus nu de volgende code voor het ophalen en weergeven van een image, welke dus niet werkt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class OpenFiles extends JComponent {
     private JLabel label;
     private JPanel imagePanel;
     private Image img;

     public OpenFiles(JPanel mapPanel) {
    JFileChooser chooser = new JFileChooser();
    chooser.setAcceptAllFileFilterUsed(false);
    chooser.addChoosableFileFilter(new OwnFilter());
    int returnVal = chooser.showOpenDialog(this);
    if(returnVal == JFileChooser.APPROVE_OPTION) {
                Image image = Toolkit.getDefaultToolkit().createImage(chooser.getSelectedFile().getName());
        ImageIcon imageIcon = new ImageIcon(image);
        JLabel jLabel = new JLabel(imageIcon);
        mapPanel.add(jLabel);
        mapPanel.setVisible(true);
        //img = getToolkit().getImage(chooser.getSelectedFile().getName());          
        System.out.println("jahoe");
    }
      }
}


Hij doorloopt de lus wel. Ik maak als eerste een JFrame aan met daarop een mapPanel, welke ik meestuur naar deze class toe, wat ook werkt. Als ik namelijk een tekst op het label 'jLabel' zet, dan geeft hij die wel weer.. Maar het plaatje lijkt niet te werken..

Iemand een idee waarom niet?

  • bigben04
  • Registratie: December 2001
  • Laatst online: 05-08 22:33
Wat voor ontwikkelomgeving gebruik je? Als je bijv. JBuilder gebruikt zou je design-time een plaatje in het label kunnen zetten om te kijken of dat uberhaupt werkt met dat plaatje.
En heb je al verschillende plaatjes gebruikt? Zo ja, wat voor plaatjes (JPG?)?

Verwijderd

Topicstarter
Ik werk in Eclipse.. een programma van Sun zelf.. En ik probeer het telkens met een jpg-je.. maar ook met een gif blijkt het niet te werken.

de achtergrondkleur van het mapPanel kan ik wel veranderen, dus er is blijkbaar iets niet goed met het ophalen van het plaatje oid. met get.Name haal ik de bestandsnaam op... en die staat er ook wel in als ik hem weergeef..

  • SPee
  • Registratie: Oktober 2001
  • Laatst online: 20:20
Met getName() haal je toch alleen het bestandsnaam op? Dus niet het hele pad.
Als het dus in een andere dir staat, kan hij hem dus niet openen en werkt het niet.
probeer eens getAbsolutePath()

let the past be the past.


Verwijderd

Topicstarter
hm... Ik heb hem blijkbaar opgelost.. Het zat hem in de getName()... hij haalde de naam wel, maar onthield blijkbaar het pad ernaar toe niet...

ik heb nu met getPath().. blijkt wel weer dat ik een absolute n00b nog ben met Java :)

Verwijderd

Topicstarter
SPee schreef op 11 september 2003 @ 09:38:
Met getName() haal je toch alleen het bestandsnaam op? Dus niet het hele pad.
Als het dus in een andere dir staat, kan hij hem dus niet openen en werkt het niet.
probeer eens getAbsolutePath()
Bedankt :)

Verwijderd

Topicstarter
Nu dit topic toch geopend is, kan hier nog wel een vraag stellen.. Ik heb dus nu dat ik dat plaatje weer kan geven op een label, welke weer op een panel staat. Nu wil ik die als basis gebruiken waar ik cirkels en eclipsen op kan tekenen. Ik moet dus het plaatje altijd op de achtergrond houden, maar ik moet op dat plaatje kunnen klikken, waardoor er een licht transparante cirkel getekend moet worden op het punt waar geklikt werd.

Hoe ga ik dit oplossen. Ik heb gelezen dat een canvas niet transparant kan worden gemaakt, en dus is dat geen optie, omdat ik een grijs vlak krijg over mijn afbeelding.

Is er dus misschien een oplossing voor mijn probleem? De cirkels die ik teken moeten ook weer verwijderbaar zijn, dus het moeten losse objecten worden, en geen vaste tekeningen..

hm..moeilijk..
Iemand?

  • nxt
  • Registratie: November 2001
  • Laatst online: 12-06 10:00

nxt

Verwijderd schreef op 11 September 2003 @ 12:13:
...Nu wil ik die als basis gebruiken waar ik cirkels en eclipsen op kan tekenen. Ik moet dus het plaatje altijd op de achtergrond houden, maar ik moet op dat plaatje kunnen klikken, waardoor er een licht transparante cirkel getekend moet worden op het punt waar geklikt werd.

Hoe ga ik dit oplossen. Ik heb gelezen dat een canvas niet transparant kan worden gemaakt, en dus is dat geen optie, omdat ik een grijs vlak krijg over mijn afbeelding.
...
je zou bijvoorbeeld in plaats van een JLabel op 't panel te plaatsen,
op een JPanel in de paintComponent(Graphics g) method
met g.drawImage(...) 't plaatje kunnen tekenen
en dan daarna alle circels / eclipsen eroverheen tekenen.
als je die circels/eclipsen die er getekend zijn bijhoud in een list, kun je ze ook weer verwijderen.

Verwijderd

Topicstarter
ff nog een vraagje...

is het mogelijk om simpel een schuine ellipse te maken?
dus niet | of _ , maar / , als jullie begrijpen wat ik bedoel..

Verwijderd

Verwijderd schreef op 19 September 2003 @ 13:37:
ff nog een vraagje...

is het mogelijk om simpel een schuine ellipse te maken?
dus niet | of _ , maar / , als jullie begrijpen wat ik bedoel..
Je zou eens even moeten kijken naar de java 2d api, en dan vooral de classes Ellipse2D en AffineTransform. Verder zit er in de java tutorial wel een redelijke uitleg over java2d : http://java.sun.com/docs/books/tutorial/2d/index.html

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

* curry684 merkt ineens dat ie in het grote-Sunchaser-helpdesktopic is belandt... :?

Kun je aub:
• Voor volkomen ongerelateerde problemen een nieuw topic openen tbv overzichtelijkheid.
• De Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/got/images/icons/edit.gif- oftewel editknop leren gebruiken ipv 3 posts op een rij te typen (aka kicken)?

Professionele website nodig?

Pagina: 1