Estou tentando descobrir porque um JComponent nunca chama um paintComponent().
package com.smartjava.lohis.gui.video;
import java.awt.*;
import javax.swing.*;
public class VideoList extends JComponent {
private static final boolean DEBUG = true;
private ListModel model;
private JScrollPane scroll;
private JPanel panel;
public VideoList() {
this(null);
}
public VideoList(ListModel model) {
super();
this.model = model;
panel = new JPanel();
panel.setLayout(new FlowLayout());
scroll = new JScrollPane(panel);
setLayout(new BorderLayout());
add(BorderLayout.CENTER, scroll);
}
public void setModel(ListModel model) {
this.model = model;
}
public ListModel getModel() {
return model;
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
panel.removeAll();
if (model != null) {
synchronized(model) {
for(int i=0;i<model.getSize();i++) {
panel.add((Component) model.getElementAt(i));
}
}
}
scroll.revalidate();
}
// sem isso daqui paintComponent não é nunca chamado !!!!
public void paint(Graphics g) {
super.paint(g);
paintComponent(g);
}
}
>

