Arkadaşlar bir kaç basit kod yazdım amacım key listener sınıfını kullanmayı öğrenmek ama bir yerde takıldım burdaki örnek kodları deniyorum kendime göre biraz değiştirdim Anladığım kadarıyla KeyTyped ve KeyPress adlı iki temel metot var bir tuşa basınca bilgilerini KeyPress ile alabiliyorum ama örnekte keyTyped ne işe yarıyor tam anlamadım acaba copy paste olduğu zaman mı çalışıyor dedim oyle değil ...yada formun dışında bir yerde bir harfe basınca mı çalışıyor dedim o da değil(malum trojanlarda ki gibi )debug ettım baktım her seferinde

if (id == KeyEvent.KEY_TYPED)

bu yukardaki kısmı atlıyor peki burası nezaman tetikleniyor İkinci birşey daha sormak istiyorum mümnkünse.Bu iş Keybinding ile de yapılıyormuş araştırdım ama hep yabancı kaynak ne farkı var biraz bilgi verebilirseniz kalanını ben çözmeye çalışırım

    int id = e.getID();
    String keyString;
    if (id == KeyEvent.KEY_TYPED) {
        char c = e.getKeyChar();
        keyString = "key character = '" + c + "'";
    } else {
        int keyCode = e.getKeyCode();
        keyString = "key code = " + keyCode
                + " ("
                + KeyEvent.getKeyText(keyCode)
                + ")";
    }

soruldu: 22 Tem '13, 09:57

ali's gravatar image

ali
5457
cevap kabul oranı: 0%

değiştirildi: 25 Tem '13, 15:01

CemIkta's gravatar image

CemIkta ♦
19.9k29125190


Evet burada insanin kafasi bazen karisabiliyor...

Ancak basit bir sekilde ifade edecek olursak:

Bir tusa bastiginda                                          : KEY_PRESSED
Bir tustan parmagimizi cektigimizde                          : KEY_RELEASED
Bir tusa bastigimizda ve bastigimiz tus Unicode karakteriyse : KEY_TYPED

Unicode karakteri olmayan tuslara örnek: F1, F2, F12, ok tuslari, numlock, insert, pause, shift, bosluk vs. gibi tuslara basildiginda KEY_TYPED eventi üretilmez.

Ikinci soruna gelince (KeyBinding):

Java'daki JComponent sinifinda kullanicilarina modül bazinda kullanim kolayliklari saglayabilmek icin KeyBinding yapabilirsin.

JComponent component = new JComponent();

component.getInputMap().put(KeyStroke.getKeyStroke("F1"), "yardimPenceresi");
component.getActionMap().put("yardimPenceresi", yardimPenceresiniAc );

Birinci satirda F1 tusuna basilmasi islemine bir isim veriyorsun. Ikinci satirda verdigin ismi bi aksyona bagliyorsun.

Yani F1'e basan bir kullanici icin bir yardim penceresi acilmis oluyor.

permanent link

cevaplandı: 22 Tem '13, 11:11

cakiral's gravatar image

cakiral
1.7k224351
cevap kabul oranı: 18%

Hocam ben galiba unicode ile asci karakter 'i karıştırdım .Unicode dediğiniz her klavyede ortak olan sizin de değiniz gibi( F1, F2, F12, ok tuslari, numlock, insert, pause, shift, bosluk)tuşlar hariç hepsi oluyor .Asci de mesela "Ç" harfini çıkrabilmek için yazılan &#351" şeyler oluor değil mi?

(23 Tem '13, 09:56) ali ali's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079
×79
×1

Soruldu: 22 Tem '13, 09:57

Görüntüleme: 1,421 kez

Son güncelleme: 25 Tem '13, 15:01

powered by BitNami OSQA