Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人知道java2d文本库吗?_Java_Text_Java 2d - Fatal编程技术网

有人知道java2d文本库吗?

有人知道java2d文本库吗?,java,text,java-2d,Java,Text,Java 2d,这就是我在游戏中需要的关于文本的内容: Word Wrap Support given a bounding box Vertical and Horizontal alignment given a bounding box 现在,我一直在读关于如何使用TextLayout的书,我似乎可以自己写这些东西,但我更愿意从更高的层次思考。我只想要一个具有如下签名的Label类: public Label(String text, Alignment alignment, VAlignment vA

这就是我在游戏中需要的关于文本的内容:

Word Wrap Support given a bounding box
Vertical and Horizontal alignment given a bounding box
现在,我一直在读关于如何使用TextLayout的书,我似乎可以自己写这些东西,但我更愿意从更高的层次思考。我只想要一个具有如下签名的Label类:

public Label(String text, Alignment alignment, VAlignment vAlignment);

有人知道有一个开源(非gpl)库可以简化文本格式吗?

如果您使用java2d绘制游戏图形,您应该能够使用awt或swing文本组件来渲染文本。例如,您可以使用Graphics2D上下文在渲染队列中创建JLabel并手动调用其paint und update方法

JLabel label = new JLabel("your text");
label.setLocation(0, 100); 
label.setSize(20, 100);
label.paint(g); // g is your Graphics2D context

查看此官方教程: 它包含显示文本所需的一切。
或者更简单地使用TextLayout,如果你不喜欢阅读=)()

在尝试了@Daniel的答案后,我得出了以下解决方案:

    JLabel label = new JLabel("your text");
    label.setSize(screen); //screen is a Dimension Object..
    label.setHorizontalAlignment(SwingConstants.CENTER);
    label.paint(g2d); // g is your Graphics2D context

希望能有所帮助……

您使用的是自定义paint()方法还是Swing组件?我使用的是java2d,所以我使用的是自定义paint()方法。我认为大多数图形程序只是创建了自己的文本渲染。为了最大限度地控制,您可以使用String.split()、FontMetrics等实现自己的版本。这对我来说不够灵活。我的游戏有聊天室