Java (окно приложения JFace) Настройка внешнего текста метки

Я хочу выяснить, как установить текст метки во внешнем окне приложения.

Что я имею:

У меня пока два окна. Первое - это главное окно приложения, которое появится, когда пользователь запустит программу. Второе окно - это другое отдельное окно, которое я создал специально для отображения пользовательского окна с ошибкой.

Проблема: мне кажется, что я не могу вызвать созданную мной метку в окне ошибки и установить для текста что-то нестандартное. Зачем? Я хочу многократно использовать это окно! Это окно предназначено для таких вещей, как обработка ошибок при неправильном вводе или если приложение не может прочитать / сохранить в файл.

Я собирался опубликовать снимки экрана, но вам нужно 10 повторений для этого. Это объяснило бы все лучше.

Вот код для метки в окне Error_dialog:

Label Error_label = new Label(container, SWT.NONE);
Error_label.setBounds(10, 10, 348, 13);
Error_label.setText("Label I actively want to change!");

Вот условие, которое я хотел бы выполнить, когда оно выполнено:

if(AvailableSpaces == 10){
//Set the label text HERE and then open the window!
    showError.open();
}

Я включил это в топ класса:

Error_dialog showError = new Error_dialog();

1 ответ

Просто сохраните метку как поле в вашем диалоговом классе и добавьте метод 'setter'. Что-то вроде:

public class ErrorDialog extends Dialog
{
  private Label errorLabel;

  ... other code

  public void setText(String text)
  {
    if (errorLabel != null && !errorLabel.isDisposed()) {
      errorLabel.setText(text);
    }
  }

Вам нужно будет использовать ваш диалог следующим образом:

 ErrorDialog dialog = new ErrorDialog(shell);

 dialog.create();  // Creates the controls

 dialog.setText("Error message");

 dialog.open();

Примечание: вы должны придерживаться правил для имен переменных Java - они всегда начинаются со строчных букв.

Далее научитесь пользоваться раскладками. С помощью setBounds вызовет проблемы, если пользователь использует разные шрифты.

Другие вопросы по тегам