KeyListener для JPanel находящейся в JScrollPane, находящейся в JSplitPane - Java

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

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

есть окно разделенное на 4 части с помощью JSplitPane. в каждой из этих частей находится JScrollPane в котором лежит JPanel. нужно сделать так чтобы при нажатии на JPanel включался ее обработчик клавиатуры(KeyListener), но он почему то не включается((. в конструкторе JPanel пишу:
Листинг программы
  1. addMouseListener(new TextFieldMouseListener());
  2. addKeyListener(new TextFieldKeyListener());
t - ссылка на объект класса JPanel внутри этого объекта.
Листинг программы
  1. private class MouseFieldListener implements MouseListener{
  2. public void mouseClicked(MouseEvent e){
  3. t.setFocusable(true);
  4. }
  5. public void mouseEntered(MouseEvent e){
  6. setCursor(Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR));
  7. }
  8. public void mouseExited(MouseEvent e){
  9. setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
  10. }
  11. public void mousePressed(MouseEvent e){}
  12. public void mouseReleased(MouseEvent e){}
  13. }
Листинг программы
  1. private class KeyFieldListener implements KeyListener{
  2. public void keyTyped(KeyEvent e){
  3. System.out.println("unicode");
  4. }
  5. public void keyPressed(KeyEvent e){
  6. System.out.println("any");
  7. }
  8. public void keyReleased(KeyEvent e){}
  9. }
самое главное MouseFieldListener почему то работает и вызывает setFocusable(), но это не приводит к тому что KeyFieldListener начинает работать. подскажите пожалуйста, что можно сделать, чтобы он заработал.

Решение задачи: «KeyListener для JPanel находящейся в JScrollPane, находящейся в JSplitPane»

textual
Листинг программы
  1. panel.requestFocusInWindow();

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


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

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

8   голосов , оценка 3.75 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут