Bild einfügen // NEU

SystemExit

Mitglied
ich weiss, ich weiss, dazu gibt es genug Fragen, aber ich versetehe es immernoch nicht.

Also wenn ich ein Bild in einem JLabel packe, dann kann ich die Grösse nicht anpassen.
Deswegen muss ich das in einem Panel zeichnen?

Also ich habe schon ein Panel und mein ImageIcon
wie und wo muss ich jetzt mein Bild da reinzeichnen?
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class MeinProgramm extends JFrame {
  // start attributes
  private ImageIcon MeinBild = new ImageIcon(getClass().getResource("images/grafik.jpg"));
  private JPanel jPanel1 = new JPanel(null, true);
  // end attributes

  public MeinProgramm() {
    super("Mein Programm");
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 351;
    int frameHeight = 419;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    setResizable(false);
    Container cp = getContentPane();
    // start components
    jPanel1.setBounds(72, 72, 201, 105);
    jPanel1.setOpaque(false);
    cp.add(jPanel1);
    // end components
    setVisible(true);
  }



  public static void main(String[] args) {
    new MeinProgramm();
  }



  // end methods
} // end of class MeinProgramm
 

mihe7

Top Contributor
Die Sache ist ganz einfach: ein Bild ist erstmal nur ein Bild. Zur Anzeige des Bildes brauchst Du eine Komponente, die in der Lage ist, das Bild darzustellen. Die Komponente hat eine Größe, das Bild hat eine andere Größe. Die Frage ist also, wie das Bild nun dargestellt werden soll, wenn es kleiner bzw. größer als die Komponente ist.
 

mihe7

Top Contributor
Eine Komponente der Art
Java:
JComponent c = new JComponent() {
    Image img = Toolkit.getDefaultToolkit().getImage(getClass().getResource("images/grafik.jpg"));

    protected void paintComponent(Graphics g) {
        g.drawImage(img, 0, 0, getWidth(), getHeight(), null);
    }
};
sollte das bewerkstelligen können.
 

mihe7

Top Contributor
Ich weiß ja nicht, was Du vorhast, aber ich kann Dir ein etwas ausgefeilteres Beispiel geben, das das Bild nur dann skaliert, wenn sich die Größe tatsächlich geändert hat:
Java:
import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.*;

// for testing purposes
import javax.imageio.ImageIO;
import java.net.URL;

public class ImagePanel extends JPanel {
    private BufferedImage image;
    private Image scaled;

    public ImagePanel(BufferedImage image) {
        this.image = image;
    }

    @Override
    public Dimension getPreferredSize() {
        Insets insets = getInsets();
        int width = insets.left + insets.right + image.getWidth();
        int height = insets.top + insets.bottom + image.getHeight();
        return new Dimension(width, height);
    }

    @Override
    protected void paintComponent(Graphics g) {
        Insets insets = getInsets();
        g.drawImage(getScaled(), insets.left, insets.top, null);
    }

    private Image getScaled() {
        Insets insets = getInsets();
        int w = getWidth() - insets.left - insets.right;
        int h = getHeight() - insets.top - insets.bottom;

        if (scaled == null || scaled.getWidth(null) != w || scaled.getHeight(null) != h) {
            scaled = image.getScaledInstance(w, h, Image.SCALE_SMOOTH);
        }

        return scaled;
    }

    public static void main(String[] args) throws Exception {
        BufferedImage img = ImageIO.read(new URL("https://upload.wikimedia.org/" +
                "wikipedia/commons/thumb/7/77/Wikipedia_svg_logo.svg/" +
                "768px-Wikipedia_svg_logo.svg.png"));

        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                JPanel panel = new ImagePanel(img);
                panel.add(new JButton("Test"));
                JFrame frame = new JFrame();
                frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                frame.add(panel);
                frame.pack();
                frame.setVisible(true);
            }
        });
    }
}
 

ELDEX HD

Mitglied
Könnte es einer mir erklähren wie ich ein bild in einem JavaFX Programm einfüge. Habe dchon ein beispiel genommen. Allerdings wenn ich da den Boldname einfüge, meint das Programm, dass es ein fehler ist. Nun. Das bild hat den gleichen namen als das was in den klammern steht. Warum sagt er mir das es Falsch ist? Ich muss doch dort den Image namen angeben oder so? Weill er möchte eine URL zu einem Bild????? Mein bild ist foch nicht im Internet!! Mein bild habe ich importiert. Kann mir einer Weiterhelfen.
 

ELDEX HD

Mitglied
Yo. Danke dafür. Hat mir echt sehr viel weitergeholfen. Ind danke für den Hinweis. Dachte nur weill es hier um Imag und so handelt.
 

KonradN

Super-Moderator
Mitarbeiter
Also neben dem Hinweis von @missy72 noch ein paar zusätzliche Anmerkungen:#

a) wenn Du eine Datei, die lokal vorliegt, einbinden willst, dann ist das eine sogenannte Ressource. Diese kannst Du über getResource bzw. getResourceAsStream bekommen (je nachdem, ob Du eine URL oder einen Stream haben willst). Diese Methoden sind in Class und ClassLoader zu finden, also ein getClass().getResource..... wäre der Aufruf in eine nicht statischen Methode bzw. Klassenname.class.getResource... in einem statischen Kontext.
b) Wo die Ressource zu liegen hat, liegt immer am Build Tool. Bei maven oder gradle wäre es z.B. src/main/resources, Eclipse wirft alles in src, IntelliJ will einen Ordner habenm, der als Ressource Ordner markiert wurde, .... (Aber aufpassen - der Eclipse zw. IntelliJ Hinweis gilt nur, wenn es eben ein Eclipse oder IntelliJ Projekt ist. Wenn du z.B. maven oder gradle mit eclipse oder intellij nutzt, dann ist es natürlich weiter ein maven bzw. gradle Projekt!)

Und beim Laden über die Klasse: Es ist relativ zum Namespace - wenn die KLasse also my.namespace.MyClass ist, dann würde ein getClass().getResource("test.png") in dem resource Ordner nach my/namespace/test.png schauen. Weiterhin: Gross-/Kleinschreibung wird beachtet!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Bild einfügen Java Basics - Anfänger-Themen 16
8 Eigenes Bild in email einfügen Java Basics - Anfänger-Themen 1
K JTable Bild einfügen Java Basics - Anfänger-Themen 1
M JFrame Bild einfügen Java Basics - Anfänger-Themen 3
D Bild in Frame einfügen Java Basics - Anfänger-Themen 11
J Bild einfügen Java Basics - Anfänger-Themen 3
T Bild in JFrame einfügen Java Basics - Anfänger-Themen 2
K Bild einfügen Java Basics - Anfänger-Themen 10
R Bild in ScrollPane einfügen!? Java Basics - Anfänger-Themen 5
G Bild in Panel oder canvas einfügen Java Basics - Anfänger-Themen 3
F Bild in Java einfügen Java Basics - Anfänger-Themen 9
S Bild einfügen, hilfe !!! Java Basics - Anfänger-Themen 5
M Java Applet bild einfügen Java Basics - Anfänger-Themen 6
0 Bild in Applet einfügen Java Basics - Anfänger-Themen 3
L externes bild einfügen Java Basics - Anfänger-Themen 2
Q Bild in ein JPanel einfügen Java Basics - Anfänger-Themen 9
C GridBagLayout BIld an variabler Stelle einfügen Java Basics - Anfänger-Themen 2
M Bild in einen Button einfügen Java Basics - Anfänger-Themen 6
O Bild in GUI als Benutzerfläche einfügen Java Basics - Anfänger-Themen 4
E Bild in JTextArea einfügen Java Basics - Anfänger-Themen 16
A Bild einfügen in JOptionPane Java Basics - Anfänger-Themen 5
T Durch Mausklick bild in Frame einfügen Java Basics - Anfänger-Themen 3
D Bild in GUI einfügen Java Basics - Anfänger-Themen 2
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
B Bild per KeyListener drehen Java Basics - Anfänger-Themen 1
I Kamera anschließen / Bild machen / Live View / Externe Blitz Java Basics - Anfänger-Themen 19
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
krgewb byte-Array, das ein Bild repräsentiert Java Basics - Anfänger-Themen 1
H Artefact mit Bild erzeugen Java Basics - Anfänger-Themen 11
R UML-Bild (Erkennung ob static o. nicht) Java Basics - Anfänger-Themen 18
J Bild auf Hintergrundbild zeichnen Java Basics - Anfänger-Themen 5
krgewb Bild itextpdf Java Basics - Anfänger-Themen 2
C Bild in executable JAR File mitgeben Java Basics - Anfänger-Themen 5
VPChief Bild in JEditorPane Java Basics - Anfänger-Themen 9
B Warum bekomme ich kein Bild. Java Basics - Anfänger-Themen 10
N Bild drehen Java Basics - Anfänger-Themen 3
S Ein Bild mit dynamischer Quelle neuzeichnen Java Basics - Anfänger-Themen 12
N GLOOP Bild nicht ansichtbar Java Basics - Anfänger-Themen 5
M Bild in JFrame Java Basics - Anfänger-Themen 1
B Signatur erstellen - Bild ist nur weiß Java Basics - Anfänger-Themen 0
CptK Interface Bild rotieren Java Basics - Anfänger-Themen 17
CptK Interface Bild rotieren Java Basics - Anfänger-Themen 1
Anica Processing Animation Bild-Position ändern Java Basics - Anfänger-Themen 9
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
CptK Interface Curser durch Bild ersetzen & MouseListner Java Basics - Anfänger-Themen 2
M jTextPane Bild anzeigen Java Basics - Anfänger-Themen 6
CptK Bild beim betätigen eines JButtons Java Basics - Anfänger-Themen 6
S Bild über JButton legen Java Basics - Anfänger-Themen 3
B Bild mit Schrift befüllen / Anpassung bei Wortlänge Java Basics - Anfänger-Themen 2
D Google maps bild mit marker versehen Java Basics - Anfänger-Themen 12
D ImageView mit einfarbigem Bild fuellen Java Basics - Anfänger-Themen 3
it_is_all Bild-Pfad wird gefunden, nicht aber Textdatei-Pfad Java Basics - Anfänger-Themen 8
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
M Bild wird von JFrame nicht geladen Java Basics - Anfänger-Themen 12
J Bild in Button einsetzen Java Basics - Anfänger-Themen 6
S button kommt durch bild Java Basics - Anfänger-Themen 13
M Ein Bild durch Objekterzeugung zeichnen Java Basics - Anfänger-Themen 5
B Greenscreen (grüner Hintergrund ersetzen mit Bild) Java Basics - Anfänger-Themen 49
K Interface Kein Bild im .jar-File Java Basics - Anfänger-Themen 15
S Bild in Jar-File mit ImageIO Java Basics - Anfänger-Themen 50
binop Bild anzeigen lassen Java Basics - Anfänger-Themen 2
D Bild zu Text Java Basics - Anfänger-Themen 4
I HTML Code in Bild (transparent) konvertieren Java Basics - Anfänger-Themen 0
I Watermark erstellen mit HTML in Bild? Java Basics - Anfänger-Themen 7
D Classpath Bild kann in .jar nicht geladen werden Java Basics - Anfänger-Themen 2
Anfänger2011 Bild programmieren?! Java Basics - Anfänger-Themen 3
L BufferdImage schwarzes Bild nach zusammenfügen zweier Bilder Java Basics - Anfänger-Themen 8
S Bild in JOptionPane Java Basics - Anfänger-Themen 1
C Abfrage nach einem Bild im Array Java Basics - Anfänger-Themen 9
J Umgebungsvariable Programmfenster zeigt kein Bild an Java Basics - Anfänger-Themen 1
J Bild loopen Java Basics - Anfänger-Themen 6
S Bild bei Kontakt ändern Java Basics - Anfänger-Themen 2
C Erste Schritte Bild holen und speichern Java Basics - Anfänger-Themen 1
D Bild im Applet anzeigen Java Basics - Anfänger-Themen 3
F Bild in ein Runnable Jar File packen (eclipse) Java Basics - Anfänger-Themen 2
M Java-Applet: Bild einbinden (getImage) Java Basics - Anfänger-Themen 0
J Ganzes Bild Java Basics - Anfänger-Themen 4
T GUI anstatt Bild schwarzes Rechteck gespeichert Java Basics - Anfänger-Themen 0
A Bild verschwindet! Wieso?? Java Basics - Anfänger-Themen 2
I Bild aus Bereich laden Java Basics - Anfänger-Themen 3
P Bild in JFrame Titelleiste Java Basics - Anfänger-Themen 7
Y Nach Bild-Upload wird Bild nicht angezeigt Java Basics - Anfänger-Themen 1
M Button mit Bild und Text Java Basics - Anfänger-Themen 2
M JSP-Einfaches Bild anzeigen Java Basics - Anfänger-Themen 4
C Bild ins Frame laden und Objekte drüber legen Java Basics - Anfänger-Themen 1
Sogomn Bild will sich nicht skalieren lassen Java Basics - Anfänger-Themen 1
P Ein Bild für GUI (Java-Editor) Java Basics - Anfänger-Themen 4
D Bild für ein paar Sekunden einblenden und wieder ausblenden Java Basics - Anfänger-Themen 1
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
S Bild auf eine Position rotieren?! Java Basics - Anfänger-Themen 4
P Bild bearbeiten Java Basics - Anfänger-Themen 9
Z Datenmatrix in Bild verwandeln Java Basics - Anfänger-Themen 4
C Bild verschwinden lassen Java Basics - Anfänger-Themen 7
S Bild Icon aus ID3Tag auslesen Java Basics - Anfänger-Themen 4
E Bild vom FileChooser aus via ImageIcon in DB schreiben Java Basics - Anfänger-Themen 16
D Bild zum Panel hinzufügen Java Basics - Anfänger-Themen 8
C Greenfoot: Bei Tastendruck und best. Wert Bild ändern Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben