在使用Java字体类和Swing时,我将字体大小设置为负值.
我发现这使文本被颠倒了.这是一个错误还是一个功能?谁能解释为什么会出现这种情况?
试试看:
import java.awt.Font;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class UpsideDown extends JFrame{
public UpsideDown(){
setSize(500,500);
setContentPane(new Panel());
setVisible(true);
}
public class Panel extends JPanel{
public void paintComponent(Graphics g){
Font f = new Font("Sans-Serif", Font.PLAIN, -50);
g.setFont(f);
g.drawString("Upside Down", 400, 100);
}
}
public static void main(String args[]){
new UpsideDown();
}
}
解决方法:
似乎发生了这种情况:
> Swing向下绘制字体的高度,因为它将字体大小与字体的字形高度相乘. -50 * glyph_height为负数 – >向下绘制而不是向上绘制.
>它还将字形(字母)的宽度绘制在左侧,这也是因为它将字体大小与字体指定的字形宽度相乘.
标签:java,language-features,swing
来源: https://codeday.me/bug/20190529/1176849.html