Bilder so einbinden, dass sie sich ändern

Hi, ich stehe vor einen kleinen Problem. Ich wollte jetzt ein Programm so abändern, dass aus einem kompletten Bild in dem alle 3 Ansichten zusammengefasst waren (und daher sehr klein), einzelne größere Ansichten werden, die sich mit ändern, wenn sich der Text ändert (siehe Foto).

Das funktioniert aber nicht. Das 1. Bild bleibt ohne das geupdatet wird. Könnte mal jemand drüber schauen wo mein Denkfehler ist. Alles andere, und mit nur einem Bild, klappt ja.

Vielen lieben Dank schonmal!

Java:
public class Controller implements ActionListener {
    
    .....
        
        double Hoechsmass = ((1+(oaB1/1000))-(1+(uaW1/1000)));
        double mindestmasz = ((1+(uaB1/1000))-(1+(oaW1/1000)));
        
        String strUE = ("/home/kata/eclipse-workspace/bildtest/src/bildtestbildtest/Übergangspassung.jpg");
        String strSpielp = ("/home/kata/eclipse-workspace/bildtest/src/bildtestbildtest/SpielPassung.jpg");
        String strPress = ("/home/kata/eclipse-workspace/bildtest/src/bildtestbildtest/presspassung.jpg");
        
        if((Hoechsmass >= 0) && (mindestmasz >= 0) ) {
            view3.lblPassungsart.setText("Spielpassung");
            
            view3.txtPane.setText("Das Kleinstmaß der Bohrung ist immer größer als, im Grenzfall auch gleich groß wie, das Größtmaß der Welle.");
            
            view3.str = strSpielp;
            //view3.update(model, view3.imageFile);
            
        }
        
        if((Hoechsmass < 0) && (mindestmasz < 0) ) {
            view3.lblPassungsart.setText("Übermaßpassung");
            
            view3.txtPane.setText("Das Größtmaß der Bohrung ist in jedem Fall kleiner als das Kleinstmaß der Welle.");
                    
            view3.str = strPress;
        }
        
        if( (Hoechsmass >= 0) ^ (mindestmasz >= 0) ) {
            view3.lblPassungsart.setText("Übergangspassung");
            
            view3.txtPane.setText("Bei einer Übergangspassung entsteht je nach Istmaßen von Bohrung und Welle beim Fügen entweder ein Spiel oder ein Übermaß. "
                    + "Das Größtmaß der Bohrung ist größer, im Grenzfall auch gleich groß wie das Kleinstmaß der Welle." );
            
            view3.str = strUE;
        }
    
    ....
        
    }

Java:
public class View3 extends JFrame implements Observer {

...

    String str = "/home/kata/eclipse-workspace/bildtest/src/bildtestbildtest/Übergangspassung.jpg";
    File imageFile = new File(str);

......


        BufferedImage image = null;
        try {
            //BufferedImage
            image = ImageIO.read(imageFile);
        }
        catch(IOException ioex) {
            //abort
            System.exit(1);
        }
        JLabel labelpic = new JLabel(new ImageIcon(image));
 

Anhänge

  • Screenshot_20190407_193007.png
    Screenshot_20190407_193007.png
    312,7 KB · Aufrufe: 32

JCODA

Top Contributor
Denkst du, dass wenn du str änderst, dass dann alle abhängigen Objekte sich mitändern?
Das ist auf jeden Fall nicht der Fall.
Schreib dir eine Methode, die dir das Icon auf dem JLabel setzt.
(Ich hätte alle 3 Bilder am Anfang geladen und dann dynamisch die Bilder getauscht, statt jedes Mal neu von der Festplatte zu laden...)
Dann kannst du direkt diese Methode aufrufen.
 
Na gut für die Nachwelt^^ hier ist meine Lösung:

In der View-Class sieht es jetzt so aus:
Java:
public class View3 extends JFrame implements Observer {
....
    ImageIcon icon = new ImageIcon();
    JLabel labelpic = new JLabel(icon);
...
und im Controller steht das:

Java:
public class Controller implements ActionListener {
...

File file1 = new File("/home/kata/eclipse-workspace/Passungsrechner/src/passungsrechner/SpielPassung.jpg");
        BufferedImage image2 = null;
        try {
            image2 = ImageIO.read(file1);
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

        File file2 = new File("/home/kata/eclipse-workspace/Passungsrechner/src/passungsrechner/presspassung.jpg");
        BufferedImage image1 = null;
        try {
            image1 = ImageIO.read(file2);
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        File file3 = new File("/home/kata/eclipse-workspace/Passungsrechner/src/passungsrechner/Übergangspassung.jpg");
        BufferedImage image3 = null;
        try {
            image3 = ImageIO.read(file3);
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
       
        /*
         * Achtung! Beim Rumspielen mit der Gui kann sich das Labelpic (große Bilder) verschieben und nicht mehr angezeigt werden.
         * Dh Rahmen anpassen oder Bild wieder zurück und nicht zig Stunden den Code umschreiben weil man den Bug nicht findet^^
         * Der Bug sitz dann wohl hintern PC :P)
         */

        if((Hoechsmass >= 0) && (mindestmasz > 0) ) {
            view3.lblPassungsart.setText("Spielpassung");
            view3.txtPane.setText("Das Kleinstmaß der Bohrung ist immer größer als, im Grenzfall auch gleich groß wie, das Größtmaß der Welle.");
            view3.icon.setImage(image2);
        }

        if((Hoechsmass < 0) && (mindestmasz < 0) ) {
            view3.lblPassungsart.setText("Übermaßpassung");
            view3.txtPane.setText("Das Größtmaß der Bohrung ist in jedem Fall kleiner als das Kleinstmaß der Welle.");
            view3.icon.setImage(image1);
        }

        if( (Hoechsmass >= 0) ^ (mindestmasz > 0) ) {
            view3.lblPassungsart.setText("Übergangspassung");
            view3.txtPane.setText("Bei einer Übergangspassung entsteht je nach Istmaßen von Bohrung und Welle beim Fügen entweder ein Spiel oder ein Übermaß. "
                    + "Das Größtmaß der Bohrung ist größer, im Grenzfall auch gleich groß wie das Kleinstmaß der Welle." );      
            view3.icon.setImage(image3);          
        }
       
...

    }
}

Achso wenn wir schon mal dabei sind, auch wenn ich nicht glaube, dass das noch jemand schafft:

1. Aktion sinnlos heute:
Hab heute ne halbe Ewigkeit damit zugebracht den Fehler zu finden und den Code nochmal umgestellt (deswegen der Kommentar im Code, falls ich irgendwann nochmal was daran ändere). Dummerweise habe ich, als ich heute den Hyperlink "verlinkt" habe, es irgendwie geschafft hab, in der Gui das Label zu verschieben, und das nicht mitbekommen. Und wenn das Bild größer ist als das Label wirds nicht dargestellt).

Und 2. Aktion sinnlos heute:
War heute schon eine ganze Weile am verzweifeln, da die Jar-Files die nach der Änderung erzeugt wurden, immer noch auf den alten Stand waren. Hatte dann schon alles mögliche probiert. Umbenennen, woanders speichern, den Java-Projekt-Ordner in Eclipse kopieren. Einzig auf den Raspi wurde es wieder anders angezeigt, aber auch nicht aktuell. Da war noch das Problem, mit den verschobenen Label und daher nicht sichtbaren Bild gewesen, was da aber auch schon geändert wurde ( ich hatte es heute schonmal zum Raspie rüberkopiert). Und dann biste komplett verwirrt :oops:

Und dann einfach, weil ich nicht weiter wusste, bei einer völlig anderen JarFile getestet was da passiert und dann öffnete sich da auch das Passungsprogramm. Dann schnallste was du da fabriziert hast und dass du ja heute Programmstarter bzw Desktop-Datei zu den PassungsProgramm und zu Java allgemein erstellen musstest, weil sich immer Ark öffnete (bei beiden, auch beim Raspie). Hab halt noch nie Jar-Files gebraucht, aber aufn Raspie dauerts zu lang oder die Ide stürtz gleich ganz ab, da wollte ich was einfach ausführbares).

Ganz normales Programmierchaos bei mir :rolleyes:
 

mrBrown

Super-Moderator
Mitarbeiter
"/home/kata/eclipse-workspace/Passungsrechner/src/passungsrechner/SpielPassung.jpg"
Du solltest keine absoluten Pfade verwenden. Die Bilder sollten mit in die Jar und dann aus dieser geladen werden ;)

Java:
File file1 = new File("/home/kata/eclipse-workspace/Passungsrechner/src/passungsrechner/SpielPassung.jpg");
        BufferedImage image2 = null;
        try {
            image2 = ImageIO.read(file1);
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
Sowas solltest du in Methoden auslagern, und nicht einfach drei mal kopieren ;)

Java:
if((Hoechsmass >= 0) && (mindestmasz > 0) ) { }
 if((Hoechsmass < 0) && (mindestmasz < 0) ) { } 
if( (Hoechsmass >= 0) ^ (mindestmasz > 0) ) { }

Sowas kannst du umformen zu:
Java:
if((Hoechsmass >= 0) && (mindestmasz > 0) ) { }
else if((Hoechsmass < 0) && (mindestmasz < 0) ) { } 
else { }
Ist für die meisten in den meisten Fällen verständlicher ;)


Und dann einfach, weil ich nicht weiter wusste, bei einer völlig anderen JarFile getestet was da passiert und dann öffnete sich da auch das Passungsprogramm. Dann schnallste was du da fabriziert hast und dass du ja heute Programmstarter bzw Desktop-Datei zu den PassungsProgramm und zu Java allgemein erstellen musstest, weil sich immer Ark öffnete (bei beiden, auch beim Raspie). Hab halt noch nie Jar-Files gebraucht, aber aufn Raspie dauerts zu lang oder die Ide stürtz gleich ganz ab, da wollte ich was einfach ausführbares).
Ich habe ehrlich gesagt keine Ahnung wovon du da redest...warum sollte man "Programmstarter bzw Desktop-Datei" brauchen, um eine Jar zu starten? o_O
 

dzim

Top Contributor
Übrigens: Wenn schon deutsch in Bezeichnern (was für mich ein absolutes Unding ist - würde das einer meiner Kollegen machen, würde er sich dafür ne verbale Ohrfeige abholen - aber sei's drum), dann richtig. Java kann UTF-8 (außer reservierte Zeichen) alles darstellen also auch mindestmaß... o_O
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Bilder in ausführbare jar einbinden AWT, Swing, JavaFX & SWT 7
T SWT Wie Bilder aus JAR-Dateien einbinden? AWT, Swing, JavaFX & SWT 12
G Spiel frage zu bilder in java einbinden AWT, Swing, JavaFX & SWT 3
MiMa Fonts, Icons, Bilder in JavaFX Anwendung AWT, Swing, JavaFX & SWT 5
F Bilder zu ausführbarer Jar-Datei hinzufügen AWT, Swing, JavaFX & SWT 5
G JPanel per Drag and Drop JButtons und Bilder ablegen AWT, Swing, JavaFX & SWT 1
G JPanel mit JButtons und Bilder AWT, Swing, JavaFX & SWT 5
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
S AffineTranformation Bilder verschwinden von Anzeige bei Pan, Zoom AWT, Swing, JavaFX & SWT 6
G Bilder in javafx Project AWT, Swing, JavaFX & SWT 11
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
N eclipse Java, bilder benutzten Funktioniert nicht AWT, Swing, JavaFX & SWT 6
Kirby.exe Bilder in GUI einfügen AWT, Swing, JavaFX & SWT 8
T Bilder bei einem JFrame einfügen AWT, Swing, JavaFX & SWT 4
K JLabel mit Bilder im nicht initialisierten JPanel hinzufügen AWT, Swing, JavaFX & SWT 5
L Bilder werden in exportierter Datei nicht geladen AWT, Swing, JavaFX & SWT 6
J Bilder aus dem SceneBuilder werden in der Jar nicht dargestellt AWT, Swing, JavaFX & SWT 4
TheWhiteShadow JavaFX Bilder werden ungewollt Skaliert AWT, Swing, JavaFX & SWT 1
B JavaFX Bilder in einem Gewissen bereich halten AWT, Swing, JavaFX & SWT 1
J Bilder proportional verkleiner AWT, Swing, JavaFX & SWT 12
E Bilder skalieren AWT, Swing, JavaFX & SWT 4
DaCrazyJavaExpert Swing Bilder überlagern AWT, Swing, JavaFX & SWT 19
A Bilder als Hintergrund AWT, Swing, JavaFX & SWT 2
@SupressWarnings() JavaFX Bilder in executable jar laden AWT, Swing, JavaFX & SWT 5
Sugan JavaFX Bilder drucken AWT, Swing, JavaFX & SWT 0
K JPanel Bilder bei Windows nicht darstellbar AWT, Swing, JavaFX & SWT 6
Sugan Java FX Verzeichnisüberwachung -> Bilder auf GUI anzeigen AWT, Swing, JavaFX & SWT 4
E AWT Bilder als "Array" abspeichern. AWT, Swing, JavaFX & SWT 4
MrSnake Bilder aus Unterordner einfügen AWT, Swing, JavaFX & SWT 2
I 2D-Grafik Bilder Eingefügt, button jetzt im Hintergrund AWT, Swing, JavaFX & SWT 2
C SWT Treeview mit Bilder im Label verändert Expanded Icon AWT, Swing, JavaFX & SWT 1
M Swing JTextPane, Bilder und Text-flow AWT, Swing, JavaFX & SWT 2
A Mit dem Scene Builder eine Collage erstellen (Bilder beziehen aus Flickr) AWT, Swing, JavaFX & SWT 1
thet1983 JTable Bilder AWT, Swing, JavaFX & SWT 6
GenerationLost Bilder an bestimmten Platz einfügen/Objekte visualisieren AWT, Swing, JavaFX & SWT 1
F Bilder in jFrame einfügen AWT, Swing, JavaFX & SWT 3
J Bilder als Variable an einem Objekt speichern AWT, Swing, JavaFX & SWT 3
I Swing Bilder werden nach Export nicht angezeigt AWT, Swing, JavaFX & SWT 1
D 2D-Grafik Bilder anzeigen AWT, Swing, JavaFX & SWT 4
J Bilder auf JPanel (im JScrollPane) nacheinander laden AWT, Swing, JavaFX & SWT 0
vodkaz JFrame,Bilder und Zeitverzögerung AWT, Swing, JavaFX & SWT 2
A Swing Bilder werden nicht angezeigt AWT, Swing, JavaFX & SWT 3
I SWT Bilder, bzw. ein einzelnes Bild AWT, Swing, JavaFX & SWT 6
M Bilder zeichnen, NullPointer Exception AWT, Swing, JavaFX & SWT 3
Xbody 2D-Grafik JavaFX Bilder transformieren AWT, Swing, JavaFX & SWT 2
C 2D-Grafik Steganographie - Verschlüsselung von Dateien in Bildern - Bilder zeigen schwarze Rechtecke AWT, Swing, JavaFX & SWT 13
P Durch Bilder Scrollen AWT, Swing, JavaFX & SWT 2
F Bilder werden nicht in's Array geladen AWT, Swing, JavaFX & SWT 4
K Bilder übereinanderlegen AWT, Swing, JavaFX & SWT 11
windl Querstreifen beim Bilder malen und anpassen an neue CPU AWT, Swing, JavaFX & SWT 12
V Fertige Komponente zum Anzeigen mehrerer Bilder AWT, Swing, JavaFX & SWT 5
Karuka 2D-Grafik Bilder in GridLayout einfügen AWT, Swing, JavaFX & SWT 7
J Swing Bilder anzeigen in Gridlayout AWT, Swing, JavaFX & SWT 11
H 2D-Grafik Bilder laden ist nicht zuverlässig AWT, Swing, JavaFX & SWT 3
F Bilder ineinander kopieren AWT, Swing, JavaFX & SWT 3
P Bilder verkleinern AWT, Swing, JavaFX & SWT 2
C SWT Mehrere Bilder in GUI laden AWT, Swing, JavaFX & SWT 5
Furtano AWT Skalierung mehrerer Bilder / Histogramme im Fenster AWT, Swing, JavaFX & SWT 4
Furtano AWT mehrere Bilder in einen Frame zeichnen + Layout Manager AWT, Swing, JavaFX & SWT 10
T 2D-Grafik Statisches Hintergrundbild, dynamische Bilder drüber AWT, Swing, JavaFX & SWT 2
C Zwei Bilder übereinander legen AWT, Swing, JavaFX & SWT 1
L [SWT] Daten und Bilder drucken AWT, Swing, JavaFX & SWT 2
S Flickr Bilder in Gui Oberfläche AWT, Swing, JavaFX & SWT 21
L Bilder im JPanel als Hintergrund - Swing AWT, Swing, JavaFX & SWT 2
K Bilder nacheinander einfügen AWT, Swing, JavaFX & SWT 3
H Bilder auf Buttons per Klick tauschen ( Puzzle ) AWT, Swing, JavaFX & SWT 8
H Bilder in Array zufällig anordnen AWT, Swing, JavaFX & SWT 4
P 2D-Grafik Viele Bilder zu einem Video AWT, Swing, JavaFX & SWT 3
J Vergleicher zweier Bilder AWT, Swing, JavaFX & SWT 2
C zwei Bilder nacheinander anzeigen AWT, Swing, JavaFX & SWT 2
L Swing Bilder über andere Bilder laden AWT, Swing, JavaFX & SWT 3
J Bilder überlappen AWT, Swing, JavaFX & SWT 18
P Bilder werden nach Änderung nicht angezeigt AWT, Swing, JavaFX & SWT 15
3 2D-Grafik Rechtecke auf Bilder legen und auslesen AWT, Swing, JavaFX & SWT 4
M Mehrere Bilder auf einmal anzeigen AWT, Swing, JavaFX & SWT 9
P Swing html mit bilder drin AWT, Swing, JavaFX & SWT 12
F Nicht alle Bilder werden angezeigt AWT, Swing, JavaFX & SWT 2
E Bilder auf JFrame AWT, Swing, JavaFX & SWT 7
R Bilder über URL einfügen AWT, Swing, JavaFX & SWT 4
F Applet zeigt Bilder nicht an AWT, Swing, JavaFX & SWT 5
M FileChooser Bilder auswählen AWT, Swing, JavaFX & SWT 8
G Swing Bilder zeichnen AWT, Swing, JavaFX & SWT 28
L Swing Bilder im Icons-Ordner AWT, Swing, JavaFX & SWT 4
U Bilder in Jar werden nicht gefunden AWT, Swing, JavaFX & SWT 5
S SWT Canvas: Flackernde Bilder AWT, Swing, JavaFX & SWT 3
A Bilder vergleichen AWT, Swing, JavaFX & SWT 4
E Swing JTextPane Inhalt(Text und Bilder) als HTML text bekommen AWT, Swing, JavaFX & SWT 3
E AWT Bilder und Java AWT, Swing, JavaFX & SWT 11
P Bilder einfügen AWT, Swing, JavaFX & SWT 4
D Swing JEditorPane mit HTML aber ohne Bilder AWT, Swing, JavaFX & SWT 3
S Swing Kleine Bilder in Panel einfügen AWT, Swing, JavaFX & SWT 13
A AWT Bilder als Link verwenden? AWT, Swing, JavaFX & SWT 11
S Bilder aus der Google Book Search API auslesen AWT, Swing, JavaFX & SWT 3
J Bilder in JScrollPane zentrieren AWT, Swing, JavaFX & SWT 5
M Bilder in einem Textfeld darstellen AWT, Swing, JavaFX & SWT 2
N Bilder aus Infos generieren lassen. Welches Framework? AWT, Swing, JavaFX & SWT 8
A SWT Bilder resizen AWT, Swing, JavaFX & SWT 9
A Swing Bilder in JFrame einfügen AWT, Swing, JavaFX & SWT 2
Cloud Einige Bilder werden nicht geladen AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen

Neue Themen


Oben