Opened image doesnt appears
<p>//EDIT: Edited question by me beacuse I dont wanna do mess here ;)
Hello. Here is 2 classes which I have a problems. In program where is a class with subclass opening and showing images works well, but when I arted some code to two classes it doesnt work (showing image in JPanel). I know that is soooooo much, but there is no way ;]</p>

<pre><code>public class przegladarka_3 {

public static void main(String[] args){
   uklad_gl okno_gl=new uklad_gl(true,800,600,"Przeglądarka plików graficznych 1.0 alfa");
   okno_gl.setResizable(false);
   okno_gl.setLocationRelativeTo(okno_gl);   
   okno_gl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}


class uklad_gl extends JFrame{

JPanel rozklad=new JPanel(); 
JPanel rozklad2;
JScrollPane zwijanie; //panel dla suwaków
JMenuBar pasek_meni; 
JMenuItem wybor;
JMenu[] pdp; //Plik Dodaj Pomoc

String[] tab_pasek;
String[] tab1; //wybory dla Plik
String[] tab2; //Dodaj
String[] tab3; //Pomoc

JFileChooser otworz,zapisz_jako;
ActionListener wykonaj_plik=new uklad_gl.klasa_zadan();
ActionListener wykonaj_dzialanie=new uklad_gl.klasa_zadan();
ActionListener wykonaj_pomoc=new uklad_gl.klasa_zadan();


public uklad_gl(boolean b, int wys, int szer, String tytul){  
setVisible(b);
setSize(wys, szer);
setTitle(tytul);


rozklad2=new JPanel(new BorderLayout());
add(rozklad,BorderLayout.PAGE_END);
add(rozklad2,BorderLayout.LINE_END);

zwijanie=new JScrollPane(rozklad);

pasek_postepu=new JProgressBar(1,100);
pasek_postepu.setValue(0);
pasek_postepu.setStringPainted(true);
pasek_postepu.setBounds(600, 200, 110,500);

stworz_caly_pasek_meni("Plik,Dodaj,Pomoc");  

} 



public void stworz_caly_pasek_meni(String lista_pasek){

tab_pasek=lista_pasek.split(",");
pasek_meni=new JMenuBar();
pdp=new JMenu[tab_pasek.length];
rozklad.add(pasek_meni);
setJMenuBar(pasek_meni);

for(int i=0;i&lt;tab_pasek.length;i++){

        pdp[i]=new JMenu(tab_pasek[i]);
        setJMenuBar(pasek_meni);
        pasek_meni.add(pdp[i]);

        if(i==0) stworz_Plik("Otwórz,Zapisz,Zapisz jako...,Zamknij",wykonaj_plik);
        else if(i==1) stworz_Dzialanie("Odcienie szarości,Sepia,Negatyw,Nasycenie barw",wykonaj_dzialanie);
        else  stworz_Pomoc("O mnie, O programie, Najczęściej zadawane pytania",wykonaj_pomoc);

    } 
    }

public void stworz_Plik(String lista_Plik,ActionListener e){

tab1=lista_Plik.split(",");

for(int i=0;i&lt;tab1.length;i++){

        wybor=new JMenuItem(tab1[i]);
        pdp[0].add(wybor);
        wybor.addActionListener(e);

   } 
  }

 public void stworz_Dzialanie(String lista_Dodaj,ActionListener e){

 tab2=lista_Dodaj.split(",");

 for(int i=0;i&lt;tab2.length;i++){

        wybor=new JMenuItem(tab2[i]);
        pdp[1].add(wybor);
        wybor.addActionListener(e);

   }
  }

public void stworz_Pomoc(String lista_Pomoc,ActionListener e){

tab3=lista_Pomoc.split(",");

for(int i=0;i&lt;tab3.length;i++){

        wybor=new JMenuItem(tab3[i]);
        pdp[2].add(wybor);
        wybor.addActionListener(e);

   }
  }

   public class klasa_zadan implements ActionListener,WindowListener,ComponentListener,MouseListener{
  BufferedImage obraz;


  public void actionPerformed(ActionEvent e){
  String polecenie=e.getActionCommand();

  if(polecenie.equals("Otwórz")) try {
    otworz();
} catch (IOException ex) {
    Logger.getLogger(uklad_gl.class.getName()).log(Level.SEVERE, null, ex);
}


        }  

public void otworz() throws IOException{
  otworz=new JFileChooser("C://");
  FileNameExtensionFilter rastrowa=new FileNameExtensionFilter("Pliki grafiki rastrowej(.jpeg,.png.,gif...)", "jpeg","jpg", "gif","png","bmp");

  otworz.setFileFilter(rastrowa);

  int a=otworz.showOpenDialog(null);

  if(a==JFileChooser.APPROVE_OPTION){
  String nazwa_pliku=otworz.getSelectedFile().getAbsolutePath();
  String roz=nazwa_pliku.substring(nazwa_pliku.lastIndexOf('.')+1);

  obraz=ImageIO.read(otworz.getSelectedFile());         
  rozklad=new JPanel(){

     protected void paintComponent(Graphics g){
            Graphics g2 = g.create();
            g2.drawImage(obraz, 0, 0, getWidth(), getHeight(), null);
            g2.dispose();             
        }         
 };   
 add(rozklad);
 revalidate();  
 repaint();   
 }
 }  
 }
 }
</code></pre>

<p><em><strong></em>**<em>*</em>**<em>*</em>***</strong><em>New classes</em><strong><em>*</em>**<em>*</em>**<em>*</em>*</strong></p>

<pre><code>public class klasa_zadan extends JFrame implements ActionListener,WindowListener,ComponentListener,MouseListener{

BufferedImage obraz;

JFileChooser otworz,zapisz_jako;

public void actionPerformed(ActionEvent e){
    try {
        String polecenie=e.getActionCommand();

        if(polecenie.equals("Otwórz"))
            otworz();

        if(polecenie.equals("Zapisz jako...")) zapisz_jako();

        if(polecenie.equals("Zamknij")) zamknij();
    } catch (IOException ex) {
        Logger.getLogger(zadania_plik.class.getName()).log(Level.SEVERE, null, ex);
    }
}  

public void otworz() throws IOException{
  otworz=new JFileChooser("C://");

  FileNameExtensionFilter rastrowa=new FileNameExtensionFilter("Pliki grafiki rastrowej(.jpeg,.png.,gif...)", "jpeg","jpg", "gif","png","bmp");
  otworz.setFileFilter(rastrowa);
  int a=otworz.showOpenDialog(null);

  if(a==JFileChooser.APPROVE_OPTION){
  String nazwa_pliku=otworz.getSelectedFile().getAbsolutePath();
 // String roz=nazwa_pliku.substring(nazwa_pliku.lastIndexOf('.')+1);

  final BufferedImage obraz=ImageIO.read(otworz.getSelectedFile()); 
  final JPanel rozklad=new JPanel(new BorderLayout()){
     protected void paintComponent(Graphics g){
           Graphics g2 = (Graphics2D)g;
           g2.drawImage(obraz, 0, 0,this);
           //g2.dispose();             
        }         
 };  
 Dimension rozmiar=new Dimension(obraz.getWidth(),obraz.getHeight()); 
 add(rozklad);
 revalidate();  
 repaint();   
 }
 }  

 public void zapisz() throws IOException{  
     File plik=zapisz_jako.getSelectedFile();
     String nazwa_pliku=plik.getAbsolutePath();
     String roz=null;
     roz=nazwa_pliku.substring(nazwa_pliku.lastIndexOf(".")+1); 
     ImageIO.write(obraz, roz, plik);         //niewiadomo, czy ta metoda działa!!!!                 
  } 


 public void zapisz_jako(){ //zapisanie pliku do innego formatu jest uzależnione od rodzaju pliku graficznego
 zapisz_jako=new JFileChooser("C://");
 zapisz_jako.setSelectedFile(new File("beznazwy.jpg")); //tworzy plik, który będzie zapisany z domyślną nazwą
 zapisz_jako.setFileSelectionMode(JFileChooser.FILES_ONLY);

 FileNameExtensionFilter rastrowa=new FileNameExtensionFilter("Pliki grafiki rastrowej(.jpeg,.png.,gif...)", "jpeg","jpg", "gif","png","bmp");
 zapisz_jako.setFileFilter(rastrowa);

 int a=zapisz_jako.showSaveDialog(null);

 if(a==JFileChooser.APPROVE_OPTION){  
     File plik=zapisz_jako.getSelectedFile();
     String nazwa_pliku=plik.getAbsolutePath();
     String roz=null;

     if(nazwa_pliku.indexOf(".jpg")==-1 &amp;&amp; nazwa_pliku.indexOf(".png")==-1 &amp;&amp; nazwa_pliku.indexOf(".gif")==-1){       
         nazwa_pliku+=".jpg"; //zostaw jpg jako domyślny
         roz="jpg";
         plik=new File(nazwa_pliku);      
     }

     else{          
         roz=nazwa_pliku.substring(nazwa_pliku.lastIndexOf(".")+1);            
         try {                
             ImageIO.write(obraz, roz, plik);                
         } catch (IOException ex) {        
             Logger.getLogger(zadania_plik.class.getName()).log(Level.SEVERE, null, ex);  
         }
     }  
 } 
 } 

public void zamknij(){
int tn=JOptionPane.showConfirmDialog(null, 
        "Czy na pewno chcesz zakończyć działanie z programem?","Widaomość",
            JOptionPane.YES_NO_OPTION,0,null);

if(tn==0) System.exit(0);       
} 
}
</code></pre>

<p>======================================================</p>

<pre><code>public class uklad_gl extends JFrame{

JPanel rozklad;
JScrollPane zwijanie; //panel dla suwaków

JMenuBar pasek_meni; 
JMenuItem wybor;
JMenu[] pdp; //Plik Dodaj Pomoc

JScrollPane suwak1,suwak2;
JProgressBar pasek_postepu;

String[] tab_pasek;
String[] tab1; //wybory dla Plik
String[] tab2; //Dodaj
String[] tab3; //Pomoc

JFileChooser otworz,zapisz_jako;
ActionListener wykonaj_plik=new zadania_plik();
ActionListener wykonaj_dzialanie=new zadania_dodaj();
ActionListener wykonaj_pomoc=new zadania_pomoc();

public uklad_gl(boolean b, int wys, int szer, String tytul){  
setVisible(b);
setSize(wys, szer);
setTitle(tytul);

rozklad=new JPanel(new BorderLayout());

zwijanie=new JScrollPane(rozklad);

stworz_caly_pasek_meni("Plik,Dodaj,Pomoc");  
stworz_suwaki(wykonaj_plik);

} 

public void stworz_suwaki(ActionListener e){
//jeszcze nie działają
suwak1=new JScrollPane();
suwak2=new JScrollPane();
rozklad.add(suwak1);
rozklad.add(suwak2);   

}

public void stworz_caly_pasek_meni(String lista_pasek){   
tab_pasek=lista_pasek.split(",");
pasek_meni=new JMenuBar();
pdp=new JMenu[tab_pasek.length];
rozklad.add(pasek_meni);
setJMenuBar(pasek_meni);

for(int i=0;i&lt;tab_pasek.length;i++){

        pdp[i]=new JMenu(tab_pasek[i]);
        setJMenuBar(pasek_meni);
        pasek_meni.add(pdp[i]);

        if(i==0) stworz_Plik("Otwórz,Zapisz,Zapisz jako...,Zamknij",wykonaj_plik);
        else if(i==1) stworz_Dzialanie("Odcienie szarości,Sepia,Negatyw,Nasycenie barw",wykonaj_dzialanie);
        else  stworz_Pomoc("O mnie, O programie, Najczęściej zadawane pytania",wykonaj_pomoc);      
  } 
  }

public void stworz_Plik(String lista_Plik,ActionListener e){
tab1=lista_Plik.split(",");

for(int i=0;i&lt;tab1.length;i++){
        wybor=new JMenuItem(tab1[i]);
        pdp[0].add(wybor);
        wybor.addActionListener(e);        
   } 
   }

public void stworz_Dzialanie(String lista_Dodaj,ActionListener e){
tab2=lista_Dodaj.split(",");

for(int i=0;i&lt;tab2.length;i++){   
        wybor=new JMenuItem(tab2[i]);
        pdp[1].add(wybor);

   }
   }

public void stworz_Pomoc(String lista_Pomoc,ActionListener e){
tab3=lista_Pomoc.split(",");

for(int i=0;i&lt;tab3.length;i++){
        wybor=new JMenuItem(tab3[i]);
        pdp[2].add(wybor);
        wybor.addActionListener(e);     
   }
   }  
   }
</code></pre>
