我现在一直在努力解决这个问题,而且我似乎无法弄明白。 我需要某种方式在JavaFX应用程序中显示表情符号(如在WhatsApp中)。
我用awt和Swing尝试过,我现在没有任何成功(编辑:swt工作,但可能仅适用于Mac)我尝试使用扩展的Unicode和Codepoints,但这并没有成功。帮忙。我希望它甚至可能,因为Windows通常不会让你显示表情符号(我自己使用Mac)。
今天我偶然发现this post about Emoji's in JavaFX 8。有人说他已经通过扩展javafx.scene.text.TextFlow
类实现了在JavaFX中显示表情符号的方法。还有一个指向little presentation的链接,从第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);
}
}
答案 0 :(得分:2)
在github pavlobu/emoji-text-flow-javafx上有一个项目,它是JavaFX的库,其主要目的是允许用户使用扩展的TextFlow显示表情符号。它有助于在运行JavaFX应用程序的不同平台上显示一致的表情符号图像。
我已经开发出它来解决在基于JavaFX的UI应用程序中一致的跨平台表情符号显示问题。 它还可以帮助您使用不同的表情符号图像包,您只需要下载要使用的带有表情符号包的.jar。 Here is a link
目前,其中包含以下表情符号样式包之一:
您甚至可以使用自己的表情包来编译该库。 有关说明,请参见README.md
答案 1 :(得分:0)
按照以下步骤将表情符号添加为文本:
前往 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"));
答案 2 :(得分:-1)
有两种方法可以做到:
(我到目前为止只为超链接做了)
和
简单说:
查找表情符号的文本(“:)”,“:P”...)如果你发现一个将Imageview添加到文本流中,如果没有将TextNode添加到TextFlow
- >
“此文本已传递:P到解析器”