Bild in Java Swing aktualisieren

p1tt1

Grünschnabel
Ich bin dabei ein kleinen Bildbearbeitungsprogramm aufzubauen, und habe nun probleme ein bild auf knopfdruck zu aktualisieren.....

Hier mein Code

Code:
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.DataOutputStream;
import java.io.DataInputStream;
import java.io.PrintStream;
import java.awt.*;
//import java.awt.ButtonShow;
import java.awt.image.ColorConvertOp;
import java.awt.color.ColorSpace;
import java.awt.image.BufferedImage;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JSlider;
import javax.swing.JTextArea;

import javax.imageio.ImageIO;
import java.lang.Thread;
import lejos.pc.comm.NXTInfo;
import lejos.pc.comm.NXTCommBluecove;
import lejos.pc.comm.NXTCommException;
import lejos.pc.comm.NXTComm;
import lejos.pc.comm.NXTCommFactory;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Image4Printer2 extends JFrame {
    Image src;
    ImageIcon srcIcon;
    
    public Image4Printer2(String titel) throws Exception{
    	super(titel);
    	MediaTracker mTracker = new MediaTracker(this);

    	src = Toolkit.getDefaultToolkit().getImage("tuc.jpg");
    	srcIcon = new ImageIcon(src);
    	
    	mTracker.addImage(src,1);
    	mTracker.waitForID(1);
    	
    	JLabel bild = new JLabel(srcIcon);
  
    	
    	JPanel panel = new JPanel(new BorderLayout());
    	JPanel panel2 = new JPanel(new GridLayout(3,1,20,20));
    	JButton button = new JButton("Test");
    	JSlider sliderA = new JSlider();
    	sliderA.setMinimum(-100);    							//stellt den Minimalwert auf 0 ein
    	sliderA.setMaximum(100);  								//stellt den Maximalwert auf 150 ein
    	sliderA.setValue(0);     								//selektiert den Wert 68
    	sliderA.setMinorTickSpacing(5); 						//Abstände im Feinraster
    	sliderA.setMajorTickSpacing(20); 						//Abstände im Großraster
    	sliderA.setOrientation(JSlider.HORIZONTAL);    			//stellt den Schieberegler horizontal auf
    	sliderA.setPaintTicks(true);    						//Striche werden angezeigt
    	sliderA.setPaintLabels(true);  							//Zahlen werden nicht angezeigt
    	sliderA.setPaintTrack(true);    						//Balken wird angezeigt
    	panel.add(bild,BorderLayout.CENTER);
    	panel2.add(button);
    	panel2.add(sliderA);
    	panel.add(panel2,BorderLayout.SOUTH);
    	add(panel);
     

        setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        setSize( 600, 400 );
        setVisible( true );
        setLocation(800, 0);
        
       
        button.addActionListener( new ActionListener() { 
        	  public void actionPerformed( ActionEvent e ) { 
        		  src = Toolkit.getDefaultToolkit().getImage("pitti.jpg");
        		  System.out.println("blblblb");
        		  srcIcon = new ImageIcon(src);
        		  
        	  } 
        	} ); 
        
    }

    
    public static void main(String[] args)throws Exception{

    	
    	Image4Printer2 i4p = new Image4Printer2("Image4Printer2");
    }
}

wenn ich test drücke wollte ich bewirken, dass das bild,was angezeigt wird geändert wird...

was kann ich tun?

liebe grüße

p1tt1
 
Hallo p1tt1,

Du solltest bild als globale Variable deklarieren.
Dann bei actionPerformed am ende nochmal bild.setIcon(srcIcon) ;

Ich würde außerdem

Code:
src = Toolkit.getDefaultToolkit().getImage("pitti.jpg");
statt
Code:
src = Toolkit.getDefaultToolkit().getImage("pitti.jpg");
benutzen,

kommt glaube ich auf die IDE und Projekt-Verzeichnis-Struktur an, bei mir (NetBeans) geht es so aber besser.

javaDeveloper2011
 
Zurück