问题描述
我正在尝试使用 Graphics.drawString()
绘制字符串。但由于某种原因,屏幕上什么也没有显示。例如,绘制矩形有效,但 drawString()
无效。
这是我的代码:
public class Main extends JFrame {
public static void main(String[] args) {
new Main();
}
public Main() {
this.setSize(350,500);
this.setVisible(true);
}
@Override
public void paint(Graphics g) {
super.paint(g);
//nothing is drawn on the screen.
g.setColor(Color.RED);
g.setFont(new Font("Arial",Font.BOLD,25));
g.drawString("Hello",10,10);
}
}
解决方法
当使用 Graphics
类在 Component
上绘制任何东西时,您应该知道一件重要的事情:
虽然 drawRect(int x,int y,int width,int height)
方法中的 x
和 y
是左上角,但在 drawString(String s,int x,int y)
中,x
和y
是左下角。
此外,当您在 JFrame
中绘制任何内容时,位置从 JFrame
标题的左上角开始,因此第一个可绘制像素在点 (~8,~28),这在每个操作系统中都不同。