Почему JScrollPane не реагирует на события колесика мыши?

у меня естьJScrollPane содержащий панель сBoxLayout (СТРАНИЦА ОСЬ).

Моя проблема в том, что JScrollPane не реагирует на события колесика мыши. Чтобы сделать это с помощью колесика мыши, мне нужно быть на.JScrollBar

я нашел этонить а у меня нетMouseMotionListener или жеMouseWheelListenerтолькоMouseListener, Я думаю, что моя проблема связана с тем, что мойJScrollPane действовать наJPanel который содержит другие панели сам. Поэтому, когда мышь находится на панели внутриJScrollPane кажется, что событие используется этой панелью, которую я никогда не видел на панели прокрутки.

Есть липравильный способ сделать события, перехваченные детьми панели прокрутки, видимыми для этой панели прокрутки?

SSCCE:

Вот простой тестовый пример, пытающийся показать, когда я пытаюсь сделать это в своем приложении Swing.

Рамка:

public class NewJFrame extends javax.swing.JFrame {

    public NewJFrame() {
        initComponents();
        for (int i = 0; i < 50; i++) {
            jPanel1.add(new TestPanel());
        }
    }

private void initComponents() {
        jScrollPane1 = new javax.swing.JScrollPane();
        jPanel1 = new javax.swing.JPanel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1,    javax.swing.BoxLayout.PAGE_AXIS));
        jScrollPane1.setViewportView(jPanel1);

        getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);

        pack();
    }

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
           @Override
            public void run() {
                new NewJFrame().setVisible(true);
           }
        });
    }
}

ИTestPanel определение:

public class TestPanel extends javax.swing.JPanel {

    public TestPanel() {
        initComponents();
    }

    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();

        jLabel1.setText("jLabel1");

        setBackground(new java.awt.Color(255, 51, 51));
        setLayout(new java.awt.BorderLayout());

        jLabel2.setText("TEST LABEL");
        jLabel2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        add(jLabel2, java.awt.BorderLayout.PAGE_START);

        jTextArea1.setEditable(false);
        jTextArea1.setColumns(20);
        jTextArea1.setRows(5);
        jTextArea1.setFocusable(false);
        jScrollPane1.setViewportView(jTextArea1);

        add(jScrollPane1, java.awt.BorderLayout.CENTER);
   }
}

JTextArea Кажется, что это событие поглощается, поскольку, когда курсор мыши находится внутри него, прокрутка с помощью колеса не работает. Я должен поместить курсор мыши за пределы текстовой области, чтобы он снова заработал.

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

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