2016-08-18 4 views

ответ

2

Вы должны быть в состоянии изменить nodeOrientation на dialogPane в Dialog:

Alert alert = ... 

alert.getDialogPane().setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT); 
0

Как Фабиан предложил below, вы можете сделать это просто с

alert.getDialogPane().setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT);


Но если кто-то пришел в поисках какой-то ручной способ сделать это (хотя я не понимаю, почему кто-то хотел бы это сделать), то, пожалуйста, найдите подробности ниже:

Я не знаю, как работают языки справа налево. Но вы можете TextFlow предоставить возможность выравнивания текста справа налево. Так что это может сработать, но я не уверен!

Кроме того, следующий фрагмент кода не отредактировал текст в самом окне оповещения. Но он просто добавляет дополнительные TextFlow в диалог.

Вот как выглядит диалоговое окно, после того, как я добавил перевод слова «Hello World» на персидском языке. Просто делали это, поэтому люди, которые смотрели вверх, знали бы, работает ли это или нет, вместо того, чтобы попробовать.

image with persion 'hello world'

Текст заголовка, похоже, чтобы получить в пути. Таким образом, вы можете удалить его с помощью using-

alert.setHeaderText(null); 

EDIT:

Поскольку кнопки по-прежнему на английском языке (или влево-вправо), вот что вы можете использовать, учитывая, что вы сделали все приложение Вправо-влево следуйте той же процедуре, что и кнопки Button справа. Я бы не стал вкладывать в это время, поскольку это то, что у вас уже есть.

ButtonType okBtn; //make sure this is of type ButtonBar.ButtonData.OK_DONE 
ButtonType cancelBtn; //make sure this is of type ButtonBar.ButtonData.CANCEL_CLOSE 
Alert alert = new Alert(AlertType.CONFIRMATION,"",okBtn,cancelBtn); 
alert.getDialogPane().setContent(textFlow); 

alert.setTitle("Some title"); 
alert.setHeaderText(null); 
Optional<ButtonType> result = alert.showAndWait(); 

Вы можете выполнить задачу, если кнопка OK нажата путем обработки result - Проверьте, result.isPresent() верно и проверьте result.get() == okBtn

Результат этого кода (игнорировать тексты кнопки) -

enter image description here

Если это работает, то, пожалуйста, дайте мне знать. И если это не дает мне знать, как это выглядит неправильно.

0

Использование:

alert.getDialogPane().getScene().setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT); 

вместо:

alert.getDialogPane().setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT); 

сделать строку заголовка направление RTL.

Смежные вопросы