首页 > 解决方案 > drawLine 不显示

问题描述

我在尝试画一条简单的线时遇到了一点问题。谁能告诉我我做错了什么?我在网上找不到任何可以帮助我的东西。

package practice;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Practice extends JPanel {

    public void PaintComponent(Graphics g){
        super.paintComponent(g);
        g.setColor(Color.BLACK);
        g.drawLine(1, 1, 50, 50);
        System.out.println("called");
    }

    public static void main(String[] args) {
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(new Practice());
        f.setPreferredSize(new Dimension(400, 400));

        f.pack();
        f.setVisible(true);
    }
}

标签: javaswing

解决方案


您拼错了方法的名称:它paintComponent以小写 p 开头。

案例很重要,特别是在这种情况下,您希望多态性调用“练习” paintComponent,而不是 JPanel。

顺便说一句,您应该@Override在公共 void 方法之上使用标记paintComponent(Graphics g)(您的 IDE 会标记您的方法不是任何现有方法的覆盖)。


推荐阅读