Agregue texto a dos campos de texto con JButtons

Si mi pregunta no era muy específica, esto es lo que estoy tratando de hacer. Tengo una calculadora que tiene dos JTextFields, un JLabel ("Answer =") y un JTextField para la respuesta.

Tengo una matriz de JButtons (0 a 9) que permiten al usuario hacer clic en ellos para agregar el número al JTextField con el cursor activo ... lo cual es el problema aquí. Solo puedo hacer que uno de los dos campos de texto les agregue números o que ambos agreguen los mismos números entre sí.

Por ejemplo, si hago clic en un botón y laaddActionListener se establece en(new AddDigitsONE) solo me permitirá agregar números al primer JTextField. Saltará de nuevo al primer JTextField incluso después de intentar establecer el cursor en el segundo JTextField y agregarle números usando los JButtons.

Code para agregar la matriz de JButtons al JPanel en el JFrame

// input is my JPanel set to BorderLayout.SOUTH

for (int i = 0; i < button.length; i++)
{
    text = Integer.toString(i);
    button[i] = new JButton();
    button[i].setText(text);
    input.add(button[i]);
    button[i].addActionListener(new AddDigitsONE());
}

Code para mi oyente de acción: Primero JTextField

// firstNumber is my first JTextField
// command is the button pressed (0-9)
// command "<" is erasing one character at a time

private class AddDigitsONE implements ActionListener
{
    public void actionPerformed(ActionEvent e)
    {
        String text = firstNumber.getText();
        String command = ((JButton)(e.getSource())).getText();

        if (command == "<")
        {
            firstNumber.setText(text.substring(0,text.length()-1));
        }

        else
            firstNumber.setText(text.concat(command));
    }
}

Code para mi escucha de acción: Segundo JTextField

private class AddDigitsTWO implements ActionListener
{
    public void actionPerformed(ActionEvent e)
    {
        String text = secondNumber.getText();
        String command = ((JButton)(e.getSource())).getText();

        if (command == "<")
        {
            secondNumber.setText(text.substring(0,text.length()-1));
        }

        else
            secondNumber.setText(text.concat(command));
    }
}

¿Hay alguna forma de fusionar ambos escuchas de acción y diferenciar entre qué campo de texto tiene el cursor activo (mientras me permite ingresar números en ambos JTextFields usando los JButtons)?

Respuestas a la pregunta(2)

Su respuesta a la pregunta