الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة مع ال keyListener

بدأه mr.beshoy في 29 سبتمبر 2011 · 1 رد · 588 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أنا كتبت كود صغير الغرض منه لما أغط على زرار " space " مثلاً يعطينى الكود الخاص بالزر ده

لكن للاسف مش مستجيب معايا خالص

دلوقتى الكود ده فى حاجة غلط :

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

import java.awt.Dimension;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class TestKeyBoard extends JFrame {

    private MyKeyListener myKeyListener;
    private JPanel panel = new JPanel();
    private JLabel label = new JLabel("Key Listener");

    public TestKeyBoard() {
        myKeyListener = new MyKeyListener();
        System.out.println("Test KeyBoard");
        label.addKeyListener(myKeyListener);
        panel.add(label);
        getContentPane().add(panel);

    }

    public static void main(String[] args) {
        TestKeyBoard testKeyBoard = new TestKeyBoard();
        testKeyBoard.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        testKeyBoard.setSize(new Dimension(400, 200));
        testKeyBoard.setLocationRelativeTo(null);
        testKeyBoard.setVisible(true);
    }

    private class MyKeyListener extends KeyAdapter {

        @Override
        public void keyPressed(KeyEvent e) {
            super.keyPressed(e);
            int id = e.getID();
            if (id == KeyEvent.VK_UP) {
                int keyCode = e.getKeyCode();
                System.out.println("keyCode" + " " + keyCode);
            }
        }
    }
}

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

الكود مرفق

KeyBoard.rar

#2

عذراً المشكلة كانت فى السطر ده :

        label.addKeyListener(myKeyListener);

و ده غلط المفروض يكون كده :

        this.addKeyListener(myKeyListener);

و ده معناه إننا هنشغل ال KeyListener على هذا ال class .

الكود :

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

import java.awt.Dimension;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class TestKeyBoard extends JFrame {

    private MyKeyListener myKeyListener;
    private JPanel panel = new JPanel();
    private JLabel label = new JLabel("Key Listener");

    public TestKeyBoard() {
        myKeyListener = new MyKeyListener();
        System.out.println("Test KeyBoard");
        this.addKeyListener(myKeyListener);
        panel.add(label);
        getContentPane().add(panel);

    }

    public static void main(String[] args) {
        TestKeyBoard testKeyBoard = new TestKeyBoard();
        testKeyBoard.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        testKeyBoard.setSize(new Dimension(400, 200));
        testKeyBoard.setLocationRelativeTo(null);
        testKeyBoard.setVisible(true);
    }

    private class MyKeyListener extends KeyAdapter {

        @Override
        public void keyPressed(KeyEvent e) {
            super.keyPressed(e);
            int keyCode = e.getKeyCode();
            if (keyCode == KeyEvent.VK_UP) {
                System.out.println("keyCode" + " " + keyCode);
            } else if (keyCode == KeyEvent.VK_DOWN) {
                System.out.println("keyCode" + " " + keyCode);
            } else if (keyCode == KeyEvent.VK_LEFT) {
                System.out.println("keyCode" + " " + keyCode);
            } else if (keyCode == KeyEvent.VK_RIGHT) {
                System.out.println("keyCode" + " " + keyCode);
            }
        }
    }
}

شكراً

مواضيع مشابهة