MrSvennie93
Gebruiker
- Lid geworden
- 23 sep 2011
- Berichten
- 101
Hallo,
Ik heb een klasse die JFrame ondersteunt.
Nu wil ik in een jpanel een plaatje als achtergrond instellen.
Ik heb wel iets werkend maar nu verdwijnt de label met tekst achter de afbeelding.
Nu had ik geprobeerd met setComponentZOrder, maar dan plaatst hij de tekst boven de afbeelding, dus de afbeelding onder de tekst ipv achter.
Hoe is dit op te lossen zonder Graphics en draw() te gebruiken?
Mvg,
Sven
Ik heb een klasse die JFrame ondersteunt.
Nu wil ik in een jpanel een plaatje als achtergrond instellen.
Ik heb wel iets werkend maar nu verdwijnt de label met tekst achter de afbeelding.
Code:
panelKeuzeProject = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0));
panelKeuzeProject.addMouseListener(this);
panelKeuzeProject.setPreferredSize(new Dimension(300, 300));
panelKeuzeProject.setBackground(Gui.kleurTegel);
panel1.add(panelKeuzeProject);
BufferedImage myPicture = null;
String link = "afbeeldingen/tegel-project.jpg";
JLabel picLabel = null;
try {
myPicture = ImageIO.read(new File(link));
// picLabel = new JLabel(new ImageIcon(myPicture));
Double ratioBreedte = (double) 300 / myPicture.getWidth();
Double ratioHoogte = (double) 300 / myPicture.getHeight();
if(ratioBreedte > ratioHoogte) {
Image o = getScaledImage(myPicture, (int)(myPicture.getWidth() * ratioHoogte),300);
picLabel = new JLabel(new ImageIcon(o));
}
else {
Image o = getScaledImage(myPicture, 300, (int)(myPicture.getHeight() * ratioBreedte));
picLabel = new JLabel(new ImageIcon(o));
}
}
catch (Exception e) {
picLabel = new JLabel("Geen afbeelding gevonden");
}
panelKeuzeProject.add(picLabel);
labelProject = new JLabel("Projecten");
labelProject.setFont(new Font("Courier New", Font.BOLD, 20));
labelProject.setOpaque(true);
panelKeuzeProject.add(labelProject);
// panelKeuzeProject.setComponentZOrder(labelProject, 0);
// panelKeuzeProject.setComponentZOrder(picLabel, 1);
Nu had ik geprobeerd met setComponentZOrder, maar dan plaatst hij de tekst boven de afbeelding, dus de afbeelding onder de tekst ipv achter.
Hoe is dit op te lossen zonder Graphics en draw() te gebruiken?
Mvg,
Sven