答案 0 :(得分:5)
表情符号只是unicode字符,并且由字体指定一个字形来表示该字符。
因此,您需要做的就是将JLabel
的字体设置为具有漂亮的表情符号字形的字体,例如来自Google的Noto Color Emoji。
答案 1 :(得分:1)
有emoji unicode symbols,简单字符就是字体。这些就像所有字符单色,黑色。但是,您可以使用嵌入的图像替换它们,它使文本使用StyledDocument,HTML。拥有自己的表情符号图标集。
int[] emojis = { 0x1F600 };
String someText = new String(emojis, 0, emojis.length);
for (int emoji : emojis) {
String emojiString = new String(new int[] { emoji }, 0, 1);
if (!someText.contains(emojiString)) {
continue;
}
String imgPath = String.format("/images/emoji%50x.png";
byte[] imgContent = Files.readAllBytes(Paths.get(imgPath));
String img = "<img src='data:image/png;base64,"
+ Base64.getEncoder().encode(imgContent)
+ "' width='16' height='16' alt='happy'>";
someText = someText.replace(emojiString, img);
}
label.setText("<html>" + someText);
未经过测试。