Chce obługiwac zdarzenia z myszki i klawiatury.Przed klinieciem na button działa obsługa klawiatury. Po kliknieciu na buttona przestaje mi w ogole czytać klawiature. Myslę, że trzeba jakoś na nowo ustawic focusa na czytanie klawiatury.
Ale jak to zrobic?
Pozostałe metody KeyListnera i MouseListnera zostaly pusty, wiec ich tu nie wklejam.
public class Swiat extends JPanel implements ActionListener,KeyListener,MouseListener {
private MyFrame frame;
private JButton nextRound;
public Swiat() {
nextRound = new JButton("Nastepna Runda");
nextRound.addActionListener(this);
setFocusable(true);
add(nextRound);
addKeyListener(this);
addMouseListener(this);
}
@Override
public void mouseClicked(MouseEvent e) {
int tmpx = e.getX();
int tmpy = e.getY();
System.out.println(tmpx);
System.out.println(tmpy);
//this.hasFocus();
}
@Override
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source == nextRound) {
doRound();
repaint();
}
}
@Override
public void keyPressed(KeyEvent e)
{
Czlowiek czlowiek = ZnajdzCzlowieka();
int key = e.getKeyCode();
if(czlowiek !=null)
{
switch(key)
{
case VK_UP:
{
czlowiek.setNextY(-1);
this.hasFocus();
doRound();
break;
}
case VK_DOWN:
{
czlowiek.setNextY(1);
this.hasFocus();
doRound();
break;
}
case VK_LEFT:
{
czlowiek.setNextX(-1);
this.hasFocus();
doRound();
break;
}
case VK_RIGHT:
{
czlowiek.setNextX(1);
this.hasFocus();
doRound();
break;
}
}
}
}
}