Если мой вопрос не был очень конкретным, вот что я пытаюсь сделать. У меня есть калькулятор, который имеет два JTextFields, JLabel ("Answer =") и JTextField для ответа.
У меня есть массив JButtons (от 0 до 9), которые позволяют пользователю нажимать на них, чтобы добавить число в JTextField с активным курсором в нем ... что является проблемой здесь. Я могу сделать так, чтобы одно из двух текстовых полей добавляло к ним числа или оба добавляли одинаковые числа друг к другу.
Например, если я нажму на кнопку, а addActionListener
будет установлен на (new AddDigitsONE)
, это позволит мне только добавить числа в первый JTextField. Он вернется к первому JTextField даже после того, как я попытаюсь установить курсор на второй JTextField и добавить к нему числа с помощью кнопок J.
Код для добавления массива JButtons к JPanel в 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());
}
Код для моего слушателя действия: First 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));
}
}
Код для моего слушателя действия: Second 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));
}
}
Есть ли способ объединить оба слушателя действия и различать, в каком текстовом поле находится активный курсор (позволяя мне вводить числа в оба поля JTextFields с помощью кнопок J)?