我想用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);
}
}
字符串
2条答案
按热度按时间pw9qyyiw1#
当使用
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),这在每个操作系统中都是不同的。6ljaweal2#
不要在JFrame上绘制,因为JFrame不会将其绘制到精确的坐标,而是使用以下代码使您的主类成为JPanel的子类:
字符串
现在添加
paint
方法型