Чтобы создать длинный литерал, вы должны добавить L
в конец.
start(600851475143L)
Вам ... нужно обновить JLabel
.
myJLabel.setText(newString);
String
s в Java неизменяемы, поэтому они никогда не могут изменяться / меняться.
Например, когда вы говорите: «У меня есть действие, которое добавляет данные в строку, которая, как я знаю, работает». ... вы ошибаетесь. Вы создали новый файл String
. Чтобы изменить текст, вам необходимо предоставить JLabel
новый String
(вход пользователя).
Изменить: ответить на последнюю часть вашего вопроса; вам нужно будет отслеживать JLabel
и обновлять его, как я показываю выше, каждый раз, когда пользователь вводит ввод (в обработчике событий для всего, что есть). Использование Pattern наблюдателя может быть вариантом, поскольку Java предоставляет его через Observer
и Observable
Есть две возможности.
Сначала нужно обновить текст l.setText(b.getTheUserInput());
, другой вариант заключается в том, что вы не добавили ярлык в контейнер.
Эта метка устанавливается по умолчанию с тем, что было первоначально возвращено b.getTheUserInput()
. Если результат b.getTheUserInput()
изменяется, метка не обнаруживается и поэтому не изменяет его текст.
Самый простой способ исправить это - вызвать l.setText(b.getTheUserInput())
, когда b.getTheUserInput()
имеет новый output.
Другой способ - написать прослушиватель (например, ChangeListener ), который отправляет событие всякий раз, когда b.getTheUserInput()
имеет новый вывод, затем добавьте ярлык слушателя и изменить его текст при получении события. Сначала это может показаться более сложным, но преимущество заключается в том, что Board
не нужно знать о ярлыке или что-то еще, что может хотеть получить доступ к его выходным данным в будущем.