This is a continuation from this post.
I have a set of graphic images with arbitrary size and drawing on a JPanel component. I have a button that adds a new draw object to the same JPanel, but does not appear until I resized the window. I added the EDT information mentioned in this post , and also named the repaint () method for the component. I am not using ArrayList as suggested by Hovercraft , but I will. My brain needs to understand things slowly when I go.
Thanks.
The code is in two classes.
import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JPanel; public class ZombieDance extends JComponent { JFrame canvas = new JFrame(); JPanel actionPanel = new JPanel(); JButton newZombie = new JButton("Add new Zombie"); ZombieDance(){
}
Second class
import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import javax.swing.JPanel; public class Zombie extends JPanel{ private int x,y,w,h; private float r,g,b; Zombie(int argx, int argy, int argw, int argh, float argr, float argg, float argb){ x = argx; y = argy; w = argw; h = argh; r = argr; g = argg; b = argb; } public Dimension getPreferredSize() { return new Dimension(20,20); } protected void paintComponent(Graphics gr) { super.paintComponent(gr);
source share