Как добавить предварительно установленный текст и пользовательские ответы в текстовую область на Java?

1

Я сделаю все возможное, чтобы explain-- Я пытаюсь сделать игру с типом вашего приключения при использовании TextField и TextArea, где то, что написано в TextField, добавлено в TextArea (это я знаю, как через ActionListener).

Однако мне нужно, чтобы TextArea начинался с заранее написанного "intro", который спрашивает пользователя в конце, хотят ли они продолжить или нет. Поэтому мне нужно, чтобы он мог отсканировать ответ пользователя ("да" или "нет") и выбрать соответствующий выбор предварительно написанного текста.

Я не хочу переписывать то, что уже есть в TextArea, я хочу добавить к нему. Я предполагаю, что меня путают в этом, как я должен выложить весь файл, чтобы он функционировал должным образом, потому что различные варианты приключения охватывают разные методы. Имея "String text = textField.getText();" только в методе actionPerformed означает, что я не могу использовать "текст" в другом месте, но перемещение этой строки с моими другими переменными говорит мне, что оно не может ссылаться на поле до его определения.

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

  • 0
    Прямо сейчас у меня есть Strings 'input' и 'text', настроенные в начале класса, конструктор сам устанавливает фактические TextArea и TextField, actionlistener инициализирует 'input' (я думаю) и фактически настраивает сам слушатель, а метод со всем моим реальным текстом не делает абсолютно ничего полезного. Изменить: Я также должен отметить, что в текстовом методе использование textArea.append (text + "Привет, как тебя зовут?") Не работает. Я не могу заставить TextArea начинать с какого-либо текста.
  • 0
    Похоже, вы используете графическую библиотеку AWT для этого проекта. Если так, не надо. Вместо этого используйте Swing, поскольку он гораздо более надежный и гибкий. Чтобы добавить текст в JTextArea, с помощью Swing все, что вам нужно сделать, это вызвать метод append(String text) .
Показать ещё 2 комментария
Теги:
textarea
append
textfield

1 ответ

0
Лучший ответ

Ваши вопросы/комментарии и мои попытки ответить:

Я пытаюсь сделать игру типа "придумать свое собственное приключение", используя TextField и TextArea, где то, что написано в TextField, добавляется в TextArea (это я знаю, как делать через ActionListener).

Согласно моему комментарию, обязательно создайте графический интерфейс Swing, который будет использовать JTextField и JTextArea. Затем вы добавите свой java.awt.event.ActionListener в JTextArea, и ActionListener будет реагировать всякий раз, когда пользователь нажал <ENTER> в JTextField.

Однако мне нужно, чтобы TextArea начинался с заранее написанного "intro", который спрашивает пользователя в конце, хотят ли они продолжить или нет. Поэтому мне нужно, чтобы он мог отсканировать ответ пользователя ("да" или "нет") и выбрать соответствующий выбор предварительно написанного текста.

Это можно сделать легко, но звучит так, как если бы вы пытались подгонять программу линейного консольного типа в графический интерфейс. Если это так, подумайте о пересмотре вашего проекта программы, поскольку то, что работает лучше всего, часто не работает хорошо для другого. Если вы переписываете, вам следует рассмотреть возможность повторного использования большинства, включая поток вашей программы, но за исключением, возможно, "образцовой" части вашей предыдущей программы, "бизнес-логики", которая лежит в основе всего.

Я не хочу переписывать то, что уже есть в TextArea, я хочу добавить к нему. Я предполагаю, что меня путают в этом, как я должен выложить весь файл, чтобы он функционировал должным образом, потому что различные варианты приключения охватывают разные методы. Имея "String text = textField.getText();" только в методе actionPerformed означает, что я не могу использовать "текст" в другом месте, но перемещение этой строки с моими другими переменными говорит мне, что оно не может ссылаться на поле до его определения.

Снова в соответствии с комментариями JTextArea имеет метод append(String text), который добавит новый текст в существующий текст, который уже отображается в вашей области JText. Таким образом, в этой заметке ваш actionPerformed метод может быть очень простым и выглядеть примерно так:

public void actionPerformed(ActionEvent e) {
  String text = textField.getText();
  textArea.append(text):
}

Хотя вам может понадобиться добавить линейные каналы "\n" до и/или после текста, который вы собираетесь добавить.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню