Java - 多色文本

时间:2014-05-26 16:13:55

标签: java fonts colors

我想要一些文字,但每个角色都有更多颜色。这是一个例子, 请忽略我们的鸡蛋,这些只是我的标志的一部分。第一个图像是用Photoshop创建的,第二个图像是用Word创建的。 enter image description here

但不是显示,而是显示: enter image description here

这确实有意义,因为它是一种字体而且字体中没有任何颜色,但我想知道是否有办法使文字的颜色和阴影不同,就像TYCOON中出现的'N'一样。这将显示在JLabel中。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:1)

将文本转换为花哨的徽标非常困难......而是使用图像。

将您的文字放入photoshop并将其导出为图像(就像您一样)。然后使用图像代替文本。

答案 1 :(得分:1)

首先,您需要为每个包含您需要的(奇特)颜色的角色创建一个图像(例如,在PhotoShop或您用于为游戏创建图像的任何其他应用程序中)。

接下来,您需要使用这些图像来绘制文本,而不是使用常规字体和JLabel。所以这需要(稍微)更多的工作......

由于您没有提供有关您使用的Java组件/库的任何详细信息,我只能提供一些伪代码作为示例:

String text = "My colorful text";
int x = START_X; //< x-coordinate of next char
int y = START_y; //< y-coordinate of next char

for (int i = 0; i < text.length(); i++) {
  char c = text.charAt(i));
  switch(c) {
    case ' ': //Space, increase x-coordinate
      x += SPACE_WIDTH;
      break;
     case '\n': // New line, reset x-coordinate and increase y-coordinate
       x = START_X;
       y += LINE_HEIGHT;
     default: // Draw character at x, y and increase x-coordinate
       charImage = getImage(c);
       drawCharacter(x, y, charImage);
       x += charImage.getWidth();
   }
}

这个(伪代码)示例假设您有

  • 找到给定字符的正确图像的方法:getImage()
  • 绘制图像的方法:drawCharcter()
  • 查找图片宽度的方法:getWidth()

此外,您可能需要一些额外的检查/ case - 语句来处理您可能遇到的其他特殊字符。 但该示例应该可以帮助您设置代码来解决您的问题。