Код, который у меня есть, теперь работает в изменении JLabel, но проблема в том, что после первого изменения он добавляет только на метку, а не меняет ее, как я предполагал. Код выглядит следующим образом.Изменение JLabel при запуске GUI
public static void changeJLabel(JPanel panelName, JLabel JLabel, String newText)
{
panelName.remove(JLabel);
JLabel = new JLabel(newText);
panelName.add(JLabel);
panelName.validate();
panelName.repaint();
}
Я установил это на кнопку в графическом интерфейсе, и результаты приведены в следующих ссылках. Перед нажатием кнопки: http://prntscr.com/64gnwl Однократное нажатие: http://prntscr.com/64gnzj Изменено как ожидалось. Удар его много раз: http://prntscr.com/64go2u Не так, как ожидалось. Я предполагаю, что он не удаляет JLabel перед добавлением другого, но я не уверен, почему. Если вам нужен мой весь код, я также добавлю это.
Почему вы хотите удалить ярлык, если вы можете просто изменить текст старого? – Arvind
Когда я менял текст, это не изменилось в графическом интерфейсе. Возможно, я тоже что-то делал неправильно. EDIT: Я действительно не узнал о .setText(). Я поражен тем, что это никогда не возникало в моем множестве поисков. – Makaires
try panelName.revalidate(); вместо panelName.validate(), но почему вам нужно удалить JLabel, когда вам нужно только изменить текст? – sasankad