Hallo,
nachdem ich lange im Netz gesucht habe, habe ich mich entschieden, mein Problem in diesem Forum darzustellen.
Ich erzeuge ein Frame. Dieser Frame soll einen Container enthalten. Der soll ebenfalls ein Button und ein JScrollPane enthalten. In diesem (JScrollPane) möchte ich gerne ein Bild zeigen lassen. Nachdem klicken auf das Button wird eine Barbeitung des Bildes durchgeführt und das Bild wird gespeichert unter dem gleichen Namen. Am Ende soll das Bild im JScollPane neu gezeigt werden. Mein Problem besteht darin, dass das alte Bild nach der Bearbeitung (ich meine das Bild mit dem alten inhalt) angezeigt wird und nicht das neue. Und ich weiß nicht warum.
Ich brauche wirklich eure Hilfe!!! und Danke im Vorraus!!
PS: der Code ist eine starke Vereinfachung von meinem Code. Ich möchte euch ja nicht mit zu viel Code nerven:lol:
hier ist der Code:
nachdem ich lange im Netz gesucht habe, habe ich mich entschieden, mein Problem in diesem Forum darzustellen.
Ich erzeuge ein Frame. Dieser Frame soll einen Container enthalten. Der soll ebenfalls ein Button und ein JScrollPane enthalten. In diesem (JScrollPane) möchte ich gerne ein Bild zeigen lassen. Nachdem klicken auf das Button wird eine Barbeitung des Bildes durchgeführt und das Bild wird gespeichert unter dem gleichen Namen. Am Ende soll das Bild im JScollPane neu gezeigt werden. Mein Problem besteht darin, dass das alte Bild nach der Bearbeitung (ich meine das Bild mit dem alten inhalt) angezeigt wird und nicht das neue. Und ich weiß nicht warum.
Ich brauche wirklich eure Hilfe!!! und Danke im Vorraus!!
PS: der Code ist eine starke Vereinfachung von meinem Code. Ich möchte euch ja nicht mit zu viel Code nerven:lol:
hier ist der Code:
Code:
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;
import javax.swing.border.TitledBorder;
public class Bild extends JFrame {
Container container;
JScrollPane scrollPaneBild;
public Bild(){
container = new Container();
scrollPaneBild= new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
setBild();
setMeineAction();
}
public void setBild(){
String bildURLEE= "C:\\cygwin\\bild1.jpg";
JPanel bildPanelEE;
bildPanelEE= new JPanel();
bildPanelEE.setLayout(new GridLayout(1,1));
bildPanelEE.setBorder(new TitledBorder("Bild"));
bildPanelEE.add(new JLabel(new ImageIcon(bildURLEE)) );
scrollPaneBild.setViewportView(bildPanelEE);
scrollPaneBild.setViewportView(new JLabel(new ImageIcon("C:\\cygwin\\bild1.jpg")));
}
public void setMeineAction(){
JButton button= new JButton("update Bild");
container.setLayout(new BorderLayout());
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent dp){
setAenderungAmBild(); // das Bild wird hier neu erzeugt
updateDasBild(dp); // ich möchte, das neu erzeugte Bild zeigen lassen
// hier wird nur das alte Bild (ich meine das Bild mit dem alten inhalt) gezeigt
}
});
container.add(button,BorderLayout.EAST);
container.add(scrollPaneBild,BorderLayout.CENTER);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(container,BorderLayout.NORTH);
}
public void updateDasBild(ActionEvent e){
String bildURLEE= "C:\\cygwin\\bild1.jpg";
JPanel bildPanelEE;
bildPanelEE= new JPanel();
bildPanelEE.setLayout(new GridLayout(1,1));
bildPanelEE.setBorder(new TitledBorder("Bild"));
bildPanelEE.add(new JLabel(new ImageIcon(bildURLEE)) );
scrollPaneBild.setViewportView(bildPanelEE);
}
// das Bild wird hier neu erzeugt
public void setAenderungAmBild(){}
public static void main(String[] args){
Bild bild= new Bild();
bild.setSize(400,300);
bild.setVisible(true);
}
}