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);
}
}
}