Не работает обработчик нажатия клавиш - Java

Узнай цену своей работы

Формулировка задачи:

Собственно сам обработчик
public void keyPressed(KeyEvent e) {
         switch (e.getKeyCode())
       {
        case KeyEvent.VK_ESCAPE:
               System.out.print("dsfgdfg");
               System.exit(0); 
               break;
               
           default:
       }
    }
А это находится в конструкторе формы
addKeyListener(this);
Класс имплементит обработчик. Хочу заметить, что мышка обрабатывается без проблем. Что я делаю не так, спасибо)

Решение задачи: «Не работает обработчик нажатия клавиш»

textual
Листинг программы
public class Screenshot extends JPanel implements MouseListener, MouseMotionListener, KeyListener {
    static int x = 50;
 
    @Override
    public void keyTyped(KeyEvent e) {
       
    }
 
    @Override
    public void keyPressed(KeyEvent e) {
         switch (e.getKeyCode())
       {
        case KeyEvent.VK_ESCAPE:
               System.out.print("dsfgdfg");
               System.exit(0); 
               break;
               
           default:
       }
    }
 
 public static BufferedImage image;
    public Screenshot()
    {
        JFrame frame = new JFrame();
        Dimension sSize = Toolkit.getDefaultToolkit ().getScreenSize ();
        int Height = sSize.height;
        int Width  = sSize.width;
        frame.setExtendedState(MAXIMIZED_BOTH);
        frame.setUndecorated(true);
        addMouseListener(this);
        addMouseMotionListener(this);
        addKeyListener(this);
        getScreen(Width,Height);
       // frame.setContentPane();
        frame.getContentPane().add(this);
        frame.pack();
        frame.setVisible(true);
    }
    
    @Override
    protected void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        g.drawImage(image,0,0, null);
        g.setColor(Color.red);
        g.drawRect(coords,40,12,456);
    }
        
    private  void getScreen(int x, int y)
    {
        GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice screen=env.getDefaultScreenDevice();
        Robot robot = null;
        try {
            robot=new Robot(screen);
        } catch (AWTException ex) {
        }
        image = robot.createScreenCapture(new Rectangle(0,0,x,y));
        if (image==null) System.exit(0);
    }
    
    public static void main(String[] arg) throws InterruptedException
    {
        Screenshot frame = new Screenshot();
       Thread.sleep(6000);
         x = 150;
        frame.repaint();
    }
    
    @Override
    public void mouseClicked(MouseEvent e) {
            
            x = 50;
            repaint();
        }
 
        @Override
        public void mousePressed(MouseEvent e) {
            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }
 
        @Override
        public void mouseReleased(MouseEvent e) {
            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }
 
        @Override
        public void mouseEntered(MouseEvent e) {
           // throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }
 
        @Override
        public void mouseExited(MouseEvent e) {
            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }
 
    @Override
    public void mouseDragged(MouseEvent e) {
        //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
 
    @Override
    public void mouseMoved(MouseEvent e) {
        //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
            
    }
   
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5
Похожие ответы