Image on Jpanel

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • battler
  • Registratie: November 2004
  • Laatst online: 30-06 15:11
Ik maak een jPanel (die ook netjes wordt getekend). Vervolgens probeer ik hier een mooie aardbei op te tekenen.
Make Panel
code:
1
2
3
4
5
6
7
8
9
10
11
 public JPanel MakePanel(Color c, int x, int y)
    {
        JPanel p = new JPanel();
        p.setBackground(c);
        p.setSize(200, 90);
        p.setLocation(x, y);
        LoadImage img = new LoadImage();
        p.add(img);
        p.setVisible(true);
        return p;
    }


LoadImage
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class LoadImage extends JPanel {

    BufferedImage img;

    public LoadImage() {
        try {
            img = ImageIO.read(new File("Strawberry.jpg"));
        } catch (IOException e) {
        }

    }

    @Override
    public void paintComponent(Graphics g) {
    g.drawImage(img, 0, 0, null);
    }
}


Alleen krijg ik in plaats van een mooie aardbei alleen maar een kleine blokje te zien.
Zodra ik de jpg file veranderd/verplaats ben ik het blokje kwijt.

Als ik de LoadImage() classe mee geef aan netbeans als "Custom Creation Code" dan werkt het perfect.

Lux.Architectuur | Van Dromen tot Wonen | www.Lux-a.nl


Acties:
  • 0 Henk 'm!

  • michiel_
  • Registratie: Juli 2005
  • Niet online
Je LoadImage object is nog te klein. Probeer eens het volgende in de constructor van je LoadImage object.
code:
1
setPreferredSize(new Dimension(breedte, hoogte));


Er is overigens wel het een het aan te merken op je code :). Het is bijvoorbeeld not done om een lege catch statement te plaatsen.

Edit: Mooi voorbeeld: je bent het blokje als je de JPG verwijderd kwijt omdat hij dan in het lege catch blok terecht komt, waardoor er niks getekend wordt. Je krijgt dus als developer en user geen feedback op het daadwerkelijke probleem

[ Voor 27% gewijzigd door michiel_ op 15-12-2009 19:59 . Reden: Kleine toevoeging ]


Acties:
  • 0 Henk 'm!

  • battler
  • Registratie: November 2004
  • Laatst online: 30-06 15:11
Ahh dat was hem! wel vreemd dat netbeans dat automagisch goed doet. Tips of opmerkingen m.b.t de code zijn uiteraard altijd welkom.

Lux.Architectuur | Van Dromen tot Wonen | www.Lux-a.nl


Acties:
  • 0 Henk 'm!

  • _Noldy
  • Registratie: September 2009
  • Laatst online: 06-07 14:33
Netbeans zijn ook GUI en grafische helden!

Je krijgt er wel een gigantische lap code van die niet van jou is maar dat vinden sommige mensen minder erg als mij.