Witam mam pewien problem z KeyListenerem , posiadam paczke zdjęc ktora pobiera mi zdjecia , a nastepnie wysyla do innej metody i tam zamienia na Label i wyswietla , moze pytanie - Jak polaczyc klase GetIcon i KeyListener zeby index sie aktualizowal po nacisnieciu przykladowej strzalki w lewo ?

public class MainPanel extends JFrame implements ActionListener{

  private ApplicationService service;
  private static final long serialVersionUID = 1L;
  private LoginPanel logPanel = new LoginPanel(null);
  private ActivatePanel activPanel = new ActivatePanel(null);
  private CreateUserPanel createUser = new CreateUserPanel(null);
  private RenewPanel renew = new RenewPanel(null);
  private CreateAdminPanel createAdmin = new CreateAdminPanel(null);
  private JMenu Admin;
  private JMenu Create;
  private JMenu Project;
  private JMenu User;
  private JMenuBar menuBar;
  private JMenuItem CreateAdmin;
  private JMenuItem CreateUser;
  private JMenuItem mActivate;
  private JMenuItem mCancelJob;
  private JMenuItem mGetJob;
  private JMenuItem mLogin;
  private JMenuItem mLogout;
  private JMenuItem mStartJob;
  private JMenuItem mUpdate;
  private JTextField PictureCount;
  private static int index;
 
  public Icon GetIcon () throws UserAuthenticationException, InvalidStateException
  {
    service.login("qqq", "dddd");
    ImagePack pack = service.beginImagePack();

     Icon image = new ImageIcon ( pack.getList().get(index).getData()); // index jest indexem tablicy bajtow z ktorej pobieram zdjecia 
     
     return image;
  }
  public class Key implements KeyListener{  
   
    public Key(String s ) {  
    addKeyListener ( this ) ; 
    addWindowListener(new WindowAdapter(){
   public void windowClosing(WindowEvent e){
    System.exit(0);
   }
    });
    }  
    /**
     * 
     */
    public Key()
    {
      // TODO Auto-generated constructor stub
    }
    @Override public void keyPressed(KeyEvent s)
    {
     
      if(s.getKeyCode() == KeyEvent.VK_RIGHT)
      { 
          index++;
         
      }
      else if (s.getKeyCode() == KeyEvent.VK_LEFT)
      {
        index--;
      }
      System.out.println(index);
      
      
    }
    /* (non-Javadoc)
     * @see java.awt.event.KeyListener#keyTyped(java.awt.event.KeyEvent)
     */
    @Override public void keyTyped(KeyEvent e)
    {
      
    }
    /* (non-Javadoc)
     * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent)
     */
    @Override public void keyReleased(KeyEvent e)
    {

      
    }
    
    
  }
  public MainPanel (ApplicationService service)  throws Exception
  {
   
   
    this.service = service;

    setTitle("Test Api");
    setSize(800, 800);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout(null);
    setLocationRelativeTo(null);

    menuBar = new JMenuBar();

    User = new JMenu("User");
    mLogin = new JMenuItem("Login");
    mLogin.addActionListener(this);
    mActivate = new JMenuItem("Activate");
    mActivate.addActionListener(this);
    mLogout = new JMenuItem("Logout");
    mLogout.addActionListener(this);

    User.add(mLogin);
    User.add(mActivate);
    User.add(mLogout);

    Project = new JMenu("Project");
    mGetJob = new JMenuItem("Get Job");
    mGetJob.addActionListener(this);
    mCancelJob = new JMenuItem("Cancel Job");
    mStartJob = new JMenuItem("Start Job");

    Project.add(mGetJob);
    Project.add(mCancelJob);
    Project.add(mStartJob);

    Admin = new JMenu("Admin");
    mUpdate = new JMenuItem("Update");
    mUpdate.addActionListener(this);
    Admin.add(mUpdate);

    Create = new JMenu("Create");
    CreateAdmin = new JMenuItem("Create Admin");
    CreateAdmin.addActionListener(this);
    CreateUser = new JMenuItem("Create User");
    CreateUser.addActionListener(this);
    Create.add(CreateAdmin);
    Create.add(CreateUser);

    Admin.add(Create);

    setJMenuBar(menuBar);
    menuBar.add(User);
    menuBar.add(Project);
    menuBar.add(Admin);

    PictureCount = new JTextField(JTextField.CENTER);
    PictureCount.setBounds(550, 700, 100, 20);
    add(PictureCount);
  
    JLabel obraz = new JLabel(GetIcon());   // tutaj klasa Get Icon wyswietla mi pobrane zdjecia 
    obraz.setBounds(0, 0, 790, 800);
    obraz.setVisible(true);
    add(obraz);
    
  }
  


  @Override public void actionPerformed(ActionEvent e)
  {
    Object source = e.getSource();
    if (source == mLogin) {
      logPanel = new LoginPanel(service);
      logPanel.setVisible(true);
    }

    if (source == mActivate) {
      activPanel = new ActivatePanel(service);
      activPanel.setVisible(true);
    }

    if (source == mLogout) {
      String logout = "Wylogowałeś się";
      JOptionPane.showMessageDialog(null, logout);
    }

    if (source == CreateAdmin) {
      createAdmin = new CreateAdminPanel(service);
      createAdmin.setVisible(true);
    }

    if (source == CreateUser) {
      createUser = new CreateUserPanel(service);
      createUser.setVisible(true);

    }

    if (source == mUpdate) {
      renew = new RenewPanel(service);
      renew.setVisible(true);
       }
  }
 
}