drawLine не отображается - PullRequest
0 голосов
/ 08 мая 2020

У меня небольшая проблема с попыткой провести простую линию. Может ли кто-нибудь сказать мне, что я делаю не так? Я не могу найти в Интернете ничего, что могло бы мне помочь.

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);
    }
}

1 Ответ

2 голосов
/ 08 мая 2020

Вы неправильно написали имя метода: оно paintComponent начинается со строчной буквы p.

Регистр имеет значение, особенно в этом случае, когда вы хотите, чтобы полиморфизм вызывал "Practice's" paintComponent, не JPanel.

Кстати, вы должны использовать тег @Override поверх вашего метода publi c void paintComponent(Graphics g) (ваша IDE пометила бы ваш метод как не переопределение любого существующего метод).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...