如何通过Java中的drawString将文本输出居中

时间:2012-04-11 12:59:17

标签: java minecraft

我试图将drawString的文本输出居中放在程序的X坐标上。我试图获得我的窗口的宽度,并以两个为中心,但无济于事。这是我的代码:

package net.minecraft.src;
import java.awt.Color;
import java.awt.FontMetrics;
import org.lwjgl.input.Keyboard;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Random;
import net.minecraft.client.Minecraft;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;

public class GuiIngame extends Gui
{
//lots of other code here
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(0);
String xCords = nf.format(mc.thePlayer.posX);
String yCords = nf.format(mc.thePlayer.posY);
String zCords = nf.format(mc.thePlayer.posZ);
drawString(fontrenderer, (new StringBuilder()).append("X: ").append(xCords).toString(), 20, 2, 0xe0e0e0);
drawString(fontrenderer, (new StringBuilder()).append("Y: ").append(xCords).toString(), 40, 2, 0xe0e0e0);
drawString(fontrenderer, (new StringBuilder()).append("Z: ").append(xCords).toString(), 60, 2, 0xe0e0e0);
}

它只需要以x轴为中心。

3 个答案:

答案 0 :(得分:2)

有一个我不知道的整数就完成了这项工作。我显示每一行的最终代码是:

drawCenteredString(fontrenderer, (new StringBuilder()).append("X: ").append(xCords).toString(), mc.displayWidth / 4, 2, 0xe0e0e0);

答案 1 :(得分:2)

这应该做你想要的:

String coord_text = new StringBuilder()).append("X: ").append(xCords).toString();
gui.drawString(fontrenderer, coord_text, gui.width/2 - fontrenderer.getStringWidth(coord_text)/2, 2, 0xe0e0e0);

答案 2 :(得分:2)

有一个特定的功能,我相信它被称为drawCenterString