Witam. Co należy zrobić aby zdarzenia klawiatury działały? Bez klawisza działają poprawnie,natomiast z implementacją go nie. metoda dodajP.Dziekuje za pomoc i pozdrawiam
public class Klasa extends JFrame implements KeyListener {
public Pane p;;
public Klasa(){
setSize(200,200);
p= new Pane();
add(BorderLayout.CENTER,p);
dodajP(p,"Dodaj",new ActionListener()
{
@Override
public void actionPerformed(ActionEvent arg0) {
Runnable r = new W(p);
Thread t = new Thread(r);
t.start();
}
} );
setVisible(true);
Runnable b = new W(p);
Thread t = new Thread(b);
t.start();
addKeyListener(this);
}
public void dodajP(Pane k,String title,ActionListener listener){
JButton b = new JButton(title);
b.addActionListener(listener);
k.add(BorderLayout.SOUTH,b);
}
public static void main(String args[])
{
Klasa t = new Klasa();
}
public void keyPressed(KeyEvent e) {
System.out.println(e.getKeyChar());
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println(e.getKeyChar());
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println(e.getKeyChar());
}
}
class Pane extends JPanel implements KeyListener
{
int x =0;
int y=0;
String name;
public Pane()
{
setSize(100,100);
this.setBackground(Color.RED);
}
public void move(int xx,int yy,String g){x=xx;y=yy;name=g;}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.drawString(name,x,y);
}
public void keyPressed(KeyEvent e) {
System.out.println(e.getID());
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println(e.getKeyChar());
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println(e.getKeyChar());
}
}
class W implements Runnable{
int war = 0;
Pane k;
public W(Pane t)
{
k=t;
}
public void run() {
for(;war<100;war++)
{
Thread t = Thread.currentThread();;
k.move(2*war,war*war,t.getName());
k.repaint();
try {
Thread.sleep(700);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}
}
}
}