📄 systemfont.java
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
package com.golden.gamedev.object.font;
import com.golden.gamedev.object.GameFont;
import com.golden.gamedev.util.ImageUtil;
import java.awt.*;
import java.awt.image.BufferedImage;
public class SystemFont
implements GameFont
{
private final Font a;
private final FontMetrics b;
private int c;
private int d;
private Color e;
public SystemFont(Font font, Color color)
{
a = font;
e = color;
Graphics2D graphics2d = ImageUtil.createImage(1, 1).createGraphics();
b = graphics2d.getFontMetrics(font);
c = b.getMaxAscent() + b.getMaxDescent() + b.getLeading();
d = c - b.getDescent();
graphics2d.dispose();
}
public SystemFont(Font font)
{
this(font, null);
}
public int drawString(Graphics2D graphics2d, String s, int i, int j)
{
if(graphics2d.getFont() != a)
graphics2d.setFont(a);
if(e != null)
graphics2d.setColor(e);
graphics2d.drawString(s, i, j + d);
return i + getWidth(s);
}
public int drawString(Graphics2D graphics2d, String s, int i, int j, int k, int l)
{
if(i == 1)
return drawString(graphics2d, s, j, k);
if(i == 3)
return drawString(graphics2d, s, (j + l / 2) - getWidth(s) / 2, k);
if(i == 2)
return drawString(graphics2d, s, (j + l) - getWidth(s), k);
if(i == 4)
{
int i1;
if((i1 = l - getWidth(s)) <= 0)
return drawString(graphics2d, s, j, k);
int j1 = s.length();
int k1 = 0;
for(int l1 = 0; l1 < j1;)
if(s.charAt(l1++) == ' ')
k1++;
if(k1 > 0)
k1 = (i1 + k1 * getWidth(' ')) / k1;
int j2;
for(int i2 = 0; i2 < j1; i2 = j2 + 1)
{
if((j2 = s.indexOf(32, i2)) == -1)
j2 = j1;
String s1 = s.substring(i2, j2);
drawString(graphics2d, s1, j, k);
j += getWidth(s1) + k1;
}
return j;
} else
{
return 0;
}
}
public int drawText(Graphics2D graphics2d, String s, int i, int j, int k, int l, int i1,
int j1)
{
boolean flag = true;
int j2 = s.length();
int k2 = j1;
int k1;
int l1;
int i2;
for(k1 = l1 = i2 = 0; k1 < j2;)
{
char c1 = s.charAt(k1++);
k2 += getWidth(c1);
if(c1 - 32 == 0)
i2 = k1 - 1;
if(k2 >= l)
{
if(flag)
{
drawString(graphics2d, s.substring(l1, i2), i, i != 2 ? j + j1 : j, k, l - j1);
flag = false;
} else
{
drawString(graphics2d, s.substring(l1, i2), i, j, k, l);
}
k += getHeight() + i1;
k2 = 0;
l1 = k1 = i2 + 1;
}
}
if(flag)
drawString(graphics2d, s.substring(l1, k1), i, i != 2 ? j + j1 : j, k, l - j1);
else
if(k2 != 0)
drawString(graphics2d, s.substring(l1, k1), i != 2 ? 1 : 2, j, k, l);
return k + getHeight();
}
public Font getFont()
{
return a;
}
public FontMetrics getFontMetrics()
{
return b;
}
public Color getColor()
{
return e;
}
public void setColor(Color color)
{
e = color;
}
public int getWidth(String s)
{
return b.stringWidth(s);
}
public int getWidth(char c1)
{
return b.charWidth(c1);
}
public int getHeight()
{
return c;
}
public String toString()
{
return super.toString() + " " + "[basefont=" + a + ", color=" + e + "]";
}
public boolean isAvailable(char c1)
{
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -