problem ze sluchaczem klawiszy

Odpowiedz Nowy wątek
2006-08-25 21:59
0

rzeczowe fragmenty kodu :


public class Panel_Główny extends JPanel
{
   public Panel_Główny()
   {
    ...
    Obsługa_Klawiszy słuchacz_klawiszy = new Obsługa_Klawiszy();
    addKeyListener(słuchacz_klawiszy);
    requestFocus();
        ...
   }

}

----------------------------------------------------------------------------------------

import java.util.*;
import java.awt.*;
import java.awt.event.*;

public class Obsługa_Klawiszy implements KeyListener
{

  public void keyPressed(KeyEvent zdarzenie)
  {
    kod_klawisza = zdarzenie.getKeyCode();
    if (kod_klawisza == KeyEvent.VK_0) System.exit(0);

  }

  public void keyReleased(KeyEvent zdarzenie)
  {

  }

  public void keyTyped(KeyEvent zdarzenie)
  {

  }
  int kod_klawisza; 

}

Problem jest prosty, aplikacja ma byc zamykana poprzez nacisniecie klawisza 0, tak sie niestety nie dzieje, gdzie lezy problem ?

z gory dziekuje

Pozostało 580 znaków

2006-08-25 22:40
0

Sprawdz czy metoda keyPressed w ogole sie wywoluje. Jesli nie, to znaczy, ze okienko samo w sobie nie ma 'focusa', a np. jakis jego komponent. Dzieje sie tak na przyklad wtedy, kiedy masz jakies przyciski. Wtedy jeden z nich standardowo dostaje focusa.

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-08-25 22:54
0

metoda keypressed nie wywołuje sie, dla sprawdzenia wstawiłem println, nie mam żadnych innych komponentow (wstawiam tylko obrazek do panelu)

Pozostało 580 znaków

2006-08-25 22:57
0

Nie wiem czy sie da, ale sprobuj w takim razie wszystkim mozliwym komponentom (panelowi, obrazkowi) przypisac ten sluchacz. Nie pamietam z jakiego powodu, ale jezeli na formatce jest jakis komponent zdolny odbieraz zdarzenia klawiatury, to domyslnie ktorys z nich to robi - nie formatka. Byc moze panel moze?

Jak nie, to daj troche wiecej koda - w szczegolnosci tego, z wstawianymi elementami - i zobacze u siebie.

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-08-25 23:34
0

przypisalem obiekt JFrame i metoda keyPressed nie wiadomo dlaczego zaczela sie wywolywac, zmienilem troche kod klasy obsluga_klawiszy :

public void keyPressed(KeyEvent zdarzenie)
{
kod_klawisza = zdarzenie.getKeyCode();
if (kod_klawisza == KeyEvent.VK_SPACE) System.exit(0);
System.out.println(kod_klawisza);

}

po nacisnieciu 0 zwraca 2 wyniki : 48 i 18

Pozostało 580 znaków

2006-08-25 23:44
0
konieczny napisał(a)

przypisalem obiekt JFrame i metoda keyPressed nie wiadomo dlaczego zaczela sie wywolywac

Heh, nie wiedziec czemu, nie zauwazylem, ze przypisujesz to wczesniej do panelu. To wiele wyjasnia - okienko (czyli JFrame) powinno nasluchiwac klawiatury. O ile wiem panel nie dostaje w ogole focusa, zeby miec szanse nasluchiwac.

konieczny napisał(a)

po nacisnieciu 0 zwraca 2 wyniki : 48 i 18

Ze 48 to oczywiste, ale 18? Na googlu pisza, ze to jakies Device Control 2, ale nie mam pojecia co oznacza...

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0