【问题标题】:Graphics.drawString() doesnt draw anything on the screenGraphics.drawString() 不在屏幕上绘制任何东西
【发布时间】:2021-05-08 13:39:43
【问题描述】:

我正在尝试使用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);
    }
}

【问题讨论】:

  • 通常最好在 JPanel 上覆盖 paintComponent 并将面板添加到框架中。此外,您可能希望将字符串向下移动,因为目前它将离开框架的顶部。
  • g.drawString("Hello", 10, 10); 更改为g.drawString("Hello", 10, 40); & 问题可能开始变得有意义..

标签: java swing user-interface graphics draw


【解决方案1】:

当使用Graphics 类向Component 绘制任何东西时,你应该知道一件重要的事情:

虽然drawRect(int x, int y, int width, int height) 方法xy左上角drawString(String s, int x, int y) xy底部-左角。

此外,当您在JFrame 中绘制任何内容时,位置从JFrame 标题的左上角开始,因此第一个可绘制像素在点(~8, ~28),这在每个操作系统中都是不同的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多