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
вызовет проблемы, если пользователь использует разные шрифты.