Estranho. Aqui não dá esse problema.
De qualquer modo, fiz algumas alterações. Adicionei um @Override, mudei a assinatura para protected em vez de public e mudei a chamada a super do paintComponent. Note que paintComponent é diferente de paintComponents (note o “s” no final). Isso faz toda a diferença, pois são métodos de pais diferentes: um pertence ao java.swing.JComponent, outro ao java.awt.Container. Todos os exemplos que já vi de desenho nesse estilo sempre sobrescrever o paintComponent do java.swing.JComponent. Por causa dessa alteração, foi necessário adicionar um construtor à classe, só para mudar o fundo para branco (tire esse construtor e veja o que acontece). Veja:
[code]import java.awt.Graphics;
import java.awt.Color;
import java.util.ArrayList;
import javax.swing.JPanel;
import java.awt.Dimension;
public class Painting extends JPanel{
private int count_paint;
private int x1 = 10,x2 = 95,y1,y2;
ArrayList list = new ArrayList();
// construtor só pra mudar a cor do painel
public Painting(){
this.setBackground(Color.WHITE);
}
@Override
protected void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.BLACK);
g.drawRect(10, 30, 75, 46);
g.drawLine(70, 30, 70, 76);
g.setColor(Color.BLUE);
g.drawString("HEAD", 28, 58);
if(!list.isEmpty()){
for(int i = 0; i < list.size(); i++){
g.setColor(Color.BLACK);
g.drawLine((75+(x2*(i))), 53, (10+(x2*(i+1))), 53);
g.drawRect((10+(x2*(i+1))), 30, 75, 46);
g.drawLine((70+(x2*(i+1))), 30, (70+(x2*(i+1))), 76);
g.setColor(Color.BLUE);
g.drawString(""+list.get(i)+"", (28+(x2*(i+1))), 58);
}
}
}
public void insertStart(String valor){
list.add(0, valor);
this.setPreferredSize(new Dimension(this.getWidth() + 100, this.getHeight()));
this.revalidate();
}
public void removeStart(){
if(list.isEmpty()){
javax.swing.JOptionPane.showMessageDialog(null, "Nenhum NÓ inserido...");
return;
}
list.remove(0);
this.setPreferredSize(new Dimension(this.getWidth()-100, this.getHeight()));
this.revalidate();
}
public void insertEnd(String valor){
list.add(valor);
this.setPreferredSize(new Dimension(this.getWidth()+100, this.getHeight()));
this.revalidate();
}
public void removeEnd(){
if(list.isEmpty()){
javax.swing.JOptionPane.showMessageDialog(null, "Nenhum NÓ inserido...");
return;
}
list.remove(list.size()-1);
this.setPreferredSize(new Dimension(this.getWidth()-100, this.getHeight()));
this.revalidate();
}
public String valueStartRemove(){
String txt = String.valueOf(list.get(0));
return txt;
}
public String valueEndRemove(){
String txt = String.valueOf(list.get(list.size()-1));
return txt;
}
}[/code]
Abraço.