Компонент краски не запустится - PullRequest
0 голосов
/ 07 декабря 2018

Я абсолютно озадачен тем, почему Paint Component не работает в этом коде:

public class GraphicsWindow extends JPanel {
    public static final int Width = 1000, Height = 800;
    GraphicsWindow(){
        setPreferredSize(new Dimension(Width, Height));
    }
    public void PaintComponent(Graphics g){
        super.paintComponents(g);
        g.setColor(Color.red);
        for(int i = 0; i < Width/10; i++){
            g.drawLine(i * 10, 0, i*10, Height);
        }
          System.out.println("paint ran");
    }

}

Основная функция:

public static void main(String[] args) {
        GraphicsWindow Graphics = new GraphicsWindow();
        Graphics.setBackground(Color.green);
        Graphics.setSize(1000, 800);
        JFrame Window = new JFrame("Snake");
        Window.add(Graphics);
        Window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Window.setBounds(650, 200, 1200, 1000);
        Window.setVisible(true);
        Graphics.repaint();
    }

Я занимался этим околочас просматривал страницу форума за страницей форума и никуда не попал.Я могу сказать, что это не работает компонент рисования, потому что консоль никогда не получает распечатку "Paint run".Я заранее сожалею, если это действительно глупая ошибка, и из-за возможно грязного кода, я немного новичок в Java.

1 Ответ

0 голосов
/ 07 декабря 2018

В именах Java учитывается регистр:

 public void PaintComponent(Graphics g){

должно быть:

public void paintComponent(Graphics g){

Когда вы переопределяете метод, вы должны использовать:

@Override
public void PaintComponent(Graphics g){

икомпилятор выдаст вам сообщение об ошибке, если вы не переопределите существующий метод.

Имена переменных НЕ должны начинаться с верхнего регистра.Изучите соглашения Java, посмотрев примеры и следуя этим примерам.

Graphics.repaint();

Нет необходимости в repaint ().Swing закрасит все компоненты, когда рамка станет видимой.

Прочтите Swing Tutorial , чтобы ознакомиться с основами Swing и рабочими примерами, чтобы начать работу.

...