Я много боролся с этой проблемой сейчас, и я не могу понять это. Мне нужен способ отображения эмодзи (как в WhatsApp) в приложении JavaFX.
Я попробовал это с awt и Swing, и теперь у меня не было никакого успеха (EDIT: swt работает, но, вероятно, только для Mac). Я пробовал это с расширенным Unicode и Codepoints, но это не помогло. Я надеюсь, что это даже возможно, потому что Windows обычно не позволяет отображать эмодзи (сам я использую Mac).
Сегодня я наткнулся на это сообщение об эмодзи в JavaFX 8. Там парень говорит, что реализовал способ отображения Emoji в JavaFX, расширив класс javafx.scene.text.TextFlow
. Также есть ссылка на небольшую презентацию и на 57-й слайд выше это немного объясняет эти так называемые EmojiFlow
объекты. Однако я не могу найти загрузку!
Спасибо всем ответившим, я так долго бился с этим, может быть, это даже невозможно
Вот небольшой нерабочий пример:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import javafx.scene.text.TextFlow;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage stage) {
VBox root = new VBox();
// I used TextFlow here because the article suggested
// extending this class, but I know it's not working
// just like this
TextFlow textFlow = new TextFlow(new Text("Should be alien smiley: "
+ (char) 0xF47D));
// casting a hex number to a char is equal to using "\uF47D"
root.getChildren().add(textFlow);
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}