MouseListener / KeyListener не работает (JPanel)

Я делаю небольшой проект, который включает в себя мышь и ключевые слушатели в JPanel. К сожалению, ни один из методов не вызывается, когда я использую мышь / клавиатуру. Я работал с JPanels / JFrame / JApplet и JComponents раньше. Фрагменты кода показаны ниже:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.File;
import java.io.PrintWriter;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.util.Scanner;

public class Hello extends JPanel implements KeyListener, MouseListener{
    JPanel panel = new JPanel();
    JFrame frame = new JFrame();
    public Hello(){
        addKeyListener(this);
        addMouseListener(this);
    }
    public static void main(String [] args){
        Hello play = new Hello();
        play.setPanel();
    }
    public void setPanel(){
        panel.setLayout(null);
        frame.add(panel);
        frame.setLayout(null);
        panel.setBounds(0,0,100,100);
        frame.setVisible(true);
        panel.setVisible(true);
        panel.setFocusable(true);
        frame.setSize(100,100);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public void keyTyped(KeyEvent evt){
        System.out.println("keytyped");
    }
    public void keyPressed(KeyEvent evt){
        System.out.print("keypressed");
    }
    public void keyReleased(KeyEvent evt){
        System.out.println("keyreleased");
    }
    public void mousePressed(MouseEvent evt){
        System.out.println("mousepressed");
    }
    public void mouseReleased(MouseEvent evt){
        System.out.println("mousereleased");
    }
    public void mouseClicked(MouseEvent evt){
        System.out.println("mouseclicked");
    }
    public void mouseEntered(MouseEvent evt){
        System.out.println("mousenentered");
    }
    public void mouseExited(MouseEvent evt){
        System.out.println("mouseexited");
    }
}

Не по теме: я получаю сообщение об ошибке Ваше сообщение, похоже, содержит код, который неправильно отформатирован как код. Сделайте отступы всего кода на 4 пробела, используя кнопку на панели инструментов кода или сочетание клавиш CTRL + K. Для получения дополнительной справки по редактированию щелкните значок панели инструментов [?]. Я понятия не имею, как это исправить. Иногда я помещаю все в код, и он все еще выигрываетт представить.

Ответы на вопрос(3)

Ваш ответ на вопрос