BufferedImage wird kein Image angezeigt + BG

VBKenner

Mitglied
Hab hier ein Problem mit dem BufferedReader. Das Bild wird nicht angezeigt und ich bekomme auch keine Errormessage. Außerdem wüsste ich gerne wie ich die Hintergrundfarbe ändere und die Color vom ImageIcon, da ein .setColor(Color.RED); für die Color irgendwie keine Wirkung zeigt.

Code:
import java.awt.Color;
import java.awt.Polygon;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;

public class Main extends JFrame{
    JPanel mapPanel;
    JLabel mapLabel;
    ImageIcon mapIcon;
    BufferedImage image;
        
        public Main() {
            System.out.println("..started...");
            this.setLayout(null);
            this.setTitle("Editor");
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setSize(700, 600);
            this.setVisible(true);
            
            this.mapPanel = new JPanel();
            this.mapPanel.setBorder(new LineBorder(Color.RED));
            this.mapPanel.setBackground(Color.YELLOW);
            this.mapPanel.setSize(600, 500);

            this.add(mapPanel);

            File file = new File("C:\\test.jpg");
            try {
                //this.image = new BufferedImage(300,300,BufferedImage.TYPE_INT_RGB);
                this.image = ImageIO.read(file);
            } catch (IOException ex) {
                ex.printStackTrace();
            }
            
            Polygon gA = new Polygon();
            gA.addPoint(20, 20);
            gA.addPoint(300, 300);
            gA.addPoint(250, 100);
            gA.addPoint(150, 235);
            this.image.getGraphics().setColor(Color.RED);
            
            this.image.getGraphics().drawPolygon(gA);
            this.mapIcon = new ImageIcon(image);
            this.mapLabel = new JLabel(this.mapIcon);
            this.mapLabel.setSize(400, 400);
            //this.mapLabel.setOpaque(true);
            this.mapPanel.add(this.mapLabel);
        }
        
        public static void main(String args[]) {
            Main editor = new Main();
        }
}

es fehlte ein .setVisible am Ende... Das setzen der Color Farbe hat nicht geklappt weil es erstens nach dem zeichnen des Polygons kommt und zweitens beim getGraphics ein neues Graphics Objekt zurückgegeben wird.
 
Zuletzt bearbeitet:
Zurück