Я пытаюсь настроить функцию, которая берет входные данные от пользователя и печатает его на этикетке и обновляет ее на запись. Обновление будет происходить путем удаления старой метки, а затем добавления метки с обновленным значением. Текст будет выровнен по центру. Хотя я могу получить ярлык для печати текущего значения «entry», он делает это, не удаляя метку со старым значением. Мне было интересно, как я смогу исправить эту проблему?Функция обновления метки не работает
import acm.graphics.*;
import acm.program.*;
public class testCanvas extends ConsoleProgram {
public void run()
{
GCanvas canvas = new GCanvas();
add(canvas);
String entry ="";
while(true)
{
entry += readLine("Give me a word: ");
if(entry=="") break;
GLabel label = new GLabel(entry);
label.setLocation(200-label.getWidth()/2,
60+label.getHeight());
label.setFont("Times New Roman-24");
// remove old label and immediately update it with
// label with current value for "entry"
canvas.remove(label);
canvas.add(label);
}
}
}
Благодарим за отзыв. Я не уверен, что такое поток, поскольку я следую онлайн-курсу Java, который не охватывал тему в то время, когда я работал над этим. Краткий взгляд на то, что поток пользовательского интерфейса немного смутил меня, и мне интересно, возможно ли, возможно, более простой способ достичь моей цели обновления ярлыка, как описано выше. , поэтому, если я правильно понял, добавление (метка) и удаление (метка) не должны быть инкапсулированы в один и тот же цикл while? Я намеревался сделать цикл бесконечным, чтобы я мог проверить его для различных случаев и для отладки, если бы он не показал ошибку выше –