这是关于的java代码JPanel
:
class Battle_field extends JPanel{
public List<Image_Obj> pics_to_be_drawn;
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(pics_to_be_drawn.get(0).Get_the_buf_img() , 41, 41, 59, 59, Color.black, null);
}
}
当我设置 GUI 时:
added_panel= new Battle_field();
added_panel.setBorder(new LineBorder(SystemColor.activeCaption, 3));
added_panel.setBounds(27, 10, 397, 630);
added_panel.setBackground(Color.white);
this.getContentPane().add(added_panel);
我发现Battle_field()
上面创建的对象会paintComponent
自动调用。
但是在这里,我还没有初始化变量“pics_to_be_drawn”,所以如果调用它,会导致编译器错误。这种设计是不可避免的吗?
当你这样做时,有必要发生吗?我非常想知道这一点,当然还有解决方案。
ps:根据官方文档,只有我调用repaint()
才会调用paintComponent()
。所以我可以在paintComponent
.