При попытке вызвать 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();
}
надо передавать объект Graphics
внутрь метода paintComponent()
, а вы передаете NULL
. из за чего NULL.setColor(Color.BLACK)
; вернет вам NPE
используйте следующий код
public static void bla() {
int b1 = 10;
int b2 = 10;
d.paintComponent(d.getGraphics(), b1, b2);
}
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
В данный момент изучаю SQL, JDBC, SwingКак тестовый проект для отработки навыков хочу сделать простой Регистратор в базу данных