how to reuse the area in a container when any component is removed from it?
- by vybhav
hi!
i hav a panel and i m trying to remove labels from it which were added to it during run-time.
but when labels are removed succesfully i m not able to use the space,left by that label,again to add any label to it.
thanks in anticipation of the solution.
here is the relevant code snippet:
to add label to the panel:
JLabel jl = new JLabel();
jl.setOpaque(true);
jl.setIcon(new ImageIcon("D:/Project/router2.jpg"));
jl.setBounds(x, y,jl.getPreferredSize().width,jl.getPreferredSize().height);
for(Component c :lcomponent)
{ flag=true;
Rectangle r4=c.getBounds();
int x1=(int) r4.getX();
int y1=(int) r4.getY();
Rectangle r5 = new Rectangle(new Point(x1-60, y1-60),new Dimension(170,170));
if(r5.contains(p)){ //To ensure that two labels do not overlap or are too close
flag = false; // to each other
break;
}}
if(flag)
{
p2.add(jl); //p2 is a panel
Component c2 = p2.getComponentAt(x,y);
p2.repaint();
lcomponent.add(c2); //lcomponent is an ArrayList<Component> to store all the labels added to the panel
}
2.to remove the label:
p2.remove();
p2.repaint();