[英]JavaFX: How can I display Emoji?
我現在一直在為這個問題苦苦掙扎,但我似乎無法弄清楚。 我需要某種方式在 JavaFX 應用程序中顯示表情符號(如在 WhatsApp 中)。
我用 awt 和 Swing 嘗試過,但現在沒有任何成功(編輯:swt 可以工作,但可能只適用於 Mac)我用擴展的 Unicode 和代碼點嘗試過,但這沒有幫助。 我希望它甚至是可能的,因為 Windows 通常不允許您顯示表情符號(我自己使用的是 Mac)。
今天我偶然發現了這篇關於 JavaFX 8 中表情符號的帖子。 有人說他通過擴展javafx.scene.text.TextFlow
類實現了一種在 JavaFX 中顯示表情符號的方法。 還有一個小演示的鏈接,從第 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);
}
}
github pavlobu/emoji-text-flow-javafx上有一個項目,它是 JavaFX 的一個庫,其主要目的是允許用戶使用擴展的 TextFlow 來顯示表情符號。 它有助於在 JavaFX 應用程序運行的不同平台上顯示一致的表情符號圖像。
我開發它是為了解決在基於 JavaFX 的 UI 應用程序中一致的跨平台表情符號顯示的問題。 它還可以幫助您使用不同的表情符號圖像包,您只需要下載帶有您要使用的表情符號包的 .jar。 這是一個鏈接
目前,它包含以下表情符號樣式包之一:
你甚至可以用你自己的表情包編譯這個庫。 操作說明在README.md 中
按照以下步驟將表情符號添加為文本:
前往https://apps.timwhitlock.info/emoji/tables/unicode搜索您想要的任何表情符號並檢查其字節碼(例如 \\xF0\\x9F\\x98\\x81)
創建一個字節數組並向其添加字節代碼,例如。 我正在使用這個表情符號:😁,它的字節碼是 \\xF0\\x9F\\x98\\x81 所以,
byte[] emojiByteCode = new byte[]{(byte)0xF0, (byte)0x9F, (byte)0x98, (byte)0x81};
String emoji = new String(emojiByteCode, Charset.forName("UTF-8"));
有兩種方法可以做到這一點:
(到目前為止,我只為超鏈接做過)
和
更簡單的說:
查找表情符號 (":)"、":P"...) 的文本,如果您找到一個,則將 Imageview 添加到 textflow,如果沒有,則將 TextNode 添加到 TextFlow
-->
“此文本通過 :P 到解析器”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.