【发布时间】:2014-05-17 08:07:56
【问题描述】:
我现在一直在努力解决这个问题,但我似乎无法弄清楚。 我需要某种方式在 JavaFX 应用程序中显示表情符号(如在 WhatsApp 中)。
我用 awt 和 Swing 尝试过,但现在没有任何成功(编辑:swt 可以工作,但可能只适用于 Mac)我用扩展的 Unicode 和代码点尝试过,但这没有帮助。我希望它甚至是可能的,因为 Windows 通常不允许你显示 Emoji(我自己使用 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);
}
}
【问题讨论】:
-
这只是 Windows 上的问题吗?在我的 Mac 上进行快速测试,将字符查看器中的表情符号粘贴到显示的 SWT 应用程序中,没有任何问题。
-
@greg-449 你是对的!它确实适用于 swt,当时我没有对其进行足够好的测试,或者我忘记了。但那是因为 swt 尽可能使用原生的东西,比如通常的 Mac 文本框,无论如何都可以显示笑脸。同样使用 SWT 将很难在其中执行我的应用程序,也许可以创建 swt 子视图?
-
这合法吗?我以为 Apple 已经获得了 Emoji 专利或其他什么?
-
@OJKrylow 表情符号包含在 Unicode 版本 6 中
标签: java eclipse javafx javafx-8 emoji