toolkit image

0

Witam, napisałem prostą aplikację do wyświetlania zdjęć na dysku o to fragment kodu

  fileTree.addTreeSelectionListener(new TreeSelectionListener()
    
    {
      public void valueChanged(TreeSelectionEvent event) 
      { 
    	 
     File file = (File) fileTree.getLastSelectedPathComponent();
     path=fileTree.getSelectionPath();
     System.out.println(file.getPath());
     System.out.println(Toolkit.getDefaultToolkit().getImage(file.getPath()));
     Toolkit toolkit = Toolkit.getDefaultToolkit();
     //image1 = toolkit.getImage(file.getPath());
     Toolkit tk = null;
     ToolkitImage tk1;
     tk1.getGraphics().
     Image image = tk.getDefaultToolkit().getImage (file.getPath());
     //   java.net.URL url = this.getClass().getResource(file.getPath());
  //   image1 = Toolkit.getDefaultToolkit().getImage(url);
    // Image img = getImage(file.getPath());
    // image1 = getToolkit().getImage(file.getPath());
     
    //  fileTree.getGraphics().drawImage(image1, 10, 10, observer);
    Color blue =new  Color(250,250,250);
         jp.setBackground(blue.blue);
      //   observer.imageUpdate(image1, 4, 4, 4, 300, 300);
         System.out.println(jp.getGraphics().drawImage(image,10,10,observer));
         
   		//fileTree.paint(g.drawImage(image, 10,10,this));
          
     }
    }
    
    );

chodzi o to że gdy klikam na zdjęcie dopiero za czwartym razem jak klikam wyświetla się
z System.out.println(jp.getGraphics().drawImage(image,10,10,observer)); widać że wyświetla zmienną która dopiero za trzecim razem przybiera stałą postać dla zdjęcia
z konsoli: sun.awt.image.ToolkitImage@be2358
/home
sun.awt.image.ToolkitImage@1add2dd
false
/home/marc
sun.awt.image.ToolkitImage@194df86
false
/home/marc/Desktop
sun.awt.image.ToolkitImage@1cde100
false
/home/marc/Desktop/linux-wallpaper-002.jpg
sun.awt.image.ToolkitImage@360be0
false
/home/marc/Desktop/linuxeye.jpg
sun.awt.image.ToolkitImage@45a877
false
/home/marc/Desktop/linux-wallpaper-002.jpg
sun.awt.image.ToolkitImage@1372a1a
false
/home/marc/Desktop/linuxeye.jpg
sun.awt.image.ToolkitImage@ad3ba4
false
/home/marc/Desktop/linux-wallpaper-002.jpg
sun.awt.image.ToolkitImage@1372a1a
true
/home/marc/Desktop/linuxeye.jpg
sun.awt.image.ToolkitImage@ad3ba4
true
/home/marc/Desktop/linux-wallpaper-002.jpg
sun.awt.image.ToolkitImage@1372a1a
true
/home/marc/Desktop/ping-pistegge.jpg
sun.awt.image.ToolkitImage@1c78e57
false
/home/marc/Desktop/linux-wallpaper-002.jpg
sun.awt.image.ToolkitImage@1372a1a
true
/home/marc/Desktop/ping-pistegge.jpg
sun.awt.image.ToolkitImage@1c78e57
true
/home/marc/Desktop/mp3
sun.awt.image.ToolkitImage@f6a746
false
/home/marc/Desktop
sun.awt.image.ToolkitImage@15ff48b
false
/home/marc
sun.awt.image.ToolkitImage@affc70
false
/home/marc/Desktop/ping-pistegge.jpg
sun.awt.image.ToolkitImage@1c78e57
true
jak to naprawić, i przy okazji jak odświeżać wyświetlanie zdjęcia? gdyby były jakieś nie domówienia z mojej strony proszę pisać postaram się rozwinąć wątek...

0

Kilka postów wcześniej (Jak narysować rysunek) jest odpowiedź.

0

dziękuję pomogło. Mam jeszcze takie pytanko jak odświeżać dany obszar zdjęcia żeby zdjęcia się nie nakładały...?

0

rozwiązanie:

 	 
     File file = (File) fileTree.getLastSelectedPathComponent();
     Image image=new ImageIcon(file.getPath()).getImage();
     Graphics g = jp.getGraphics();
     g.drawImage(image,image.getHeight(observer), image.getHeight(observer), 800, 600,observer);
     jp.update(g);
     jp.getGraphics().drawImage(image,10,10,observer);

1 użytkowników online, w tym zalogowanych: 0, gości: 1