проблема с awt.graphics

249
26 ноября 2016, 19:17

При попытке вызвать paintComponent с передачей аргументов происходит ошибка, если я удаляю аргументы и назначаю внутри paintComponent свои все работает.

Ошибка:

Exception in thread "main" java.lang.NullPointerException
at fg.draw.paintComponent(draw.java:10)
at fg.mane.bla(mane.java:18)
at fg.mane.main(mane.java:13)
package fg;

Код:

import javax.swing.JFrame;
public class mane {
    static draw d=new draw();
    public static void main(String[]args){
        frame f=new frame();
        f.f1.setSize(200,200);
        f.f1.setVisible(true);
        f.f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.f1.add(d);
        bla();
    }
    public static void bla(){
        int b1=10;
        int b2=10;
        d.paintComponent(null, b1, b2);
    }
}
        package fg;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JLabel;
public class draw extends JLabel {
    public void paintComponent(Graphics g,int x,int y){
        g.setColor(Color.BLACK);
        g.fillRect(x, y, 20, 20);
    }
}
package fg;
import javax.swing.JFrame;
public class frame {
    JFrame f1=new JFrame();
}
Answer 1

надо передавать объект Graphics внутрь метода paintComponent(), а вы передаете NULL. из за чего NULL.setColor(Color.BLACK); вернет вам NPE

используйте следующий код

 public static void bla() {
    int b1 = 10;
    int b2 = 10;
    d.paintComponent(d.getGraphics(), b1, b2);
}
READ ALSO
Используется ли сейчас vector или только stack? [закрыто]

Используется ли сейчас vector или только stack? [закрыто]

И если используется то часто ли? PS

240
Как добавить панель ввода текста во фрейм вместе с JTable?

Как добавить панель ввода текста во фрейм вместе с JTable?

В данный момент изучаю SQL, JDBC, SwingКак тестовый проект для отработки навыков хочу сделать простой Регистратор в базу данных

250
Spring boot. Не обрабатывается JSP

Spring boot. Не обрабатывается JSP

Код контроллера:

385