Вам нужно быть знакомым с графикой Java и связанными с ней методами, в частности drawString()
, поэтому начните с чтения официального Учебника графики .
Затем узнайте о MouseListeners , который поможет вам узнать, когда и где пользователь нажимает в вашем JFrame
.
Затем узнайте о KeyListeners , который позволит вам определить, когда ваш пользовательтипирование. Вы можете вместо этого использовать связывание клавиш , но, как описано, ваш пользовательский интерфейс относительно прост с одним фокусируемым компонентом, поэтому списки ключей, вероятно, в порядке.
Эта общая стратегия должна помочь вам принятьмгновенный скачок в проблеме:
обнаружение щелчка мышью с помощью мышиного прослушивателя
рисование вставки
обнаружение нажатия клавиш с помощью клавишного регистратора
использовать graphics.drawstring для рисования символа, указанного при нажатии клавиши
перерисовать строку ввода
Убедитесь, что ваш обработчик ключей обрабатывает клавишу ввода, чтобы вы знали, когда стирать панель ввода. Вы собираетесь paint
ваш JFrame между каждым из этих шагов.
Результат будет, по меньшей мере, грубым, и вы заметите, что вам нужно справитьсямножество вопросов, которые возникают по пути, прежде чем вещи начинают выглядеть профессионально. Например, вам придется иметь дело с метриками шрифта . Не каждый символ будет иметь одинаковую ширину, поэтому вам нужно вычислить аргумент X для вашего drawString()
на основе charWidth
любого символа, который пользователь вводит. По этой причине вы можете начать с моноширинного шрифта.