Olá a todos,
Tenho um JScrollPane com um JTable dentro e estou tentando coloca-lo em um JFrame. Mas isso não ocorre na inicialização do programa, e sim a pedido do usuário.
O problema é que ao colocar o scrollpane no frame não é mostrada a tabela. Apenas depois de minimizar (ou algumas outras operações) é que a tabela é mostrada.
Imagino que isso signifique que o frame não foi redesenhado após adição do scrollpane.
O código a seguir replica o comportamento:
[code]import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class Teste extends JFrame{
JPanel painel;
public Teste() {		
	painel = new JPanel(new BorderLayout());
	
	JButton botao = new JButton("Criar tabela");
	botao.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
			preencher();
		}
	});
	
	painel.add(botao, BorderLayout.NORTH);
	this.setContentPane(painel);		
	this.setSize(300, 300);
	this.setVisible(true);
	this.setDefaultCloseOperation(EXIT_ON_CLOSE);	
}
public void preencher() {
	String[] colunas = {"A", "B"};  
	Integer[][] linhas = {{0, 0}, {1, 10}, {2, 20}, {3, 30}};  
	
	JTable table = new JTable(linhas, colunas);
	table.setFillsViewportHeight(true);
	JScrollPane scrollPane = new JScrollPane(table); 
	
	painel.add(scrollPane, BorderLayout.CENTER);
}
public static void main(String[] args) {
	new Teste();
}
}[/code]
Já tentei usar o repaint(), mas não sei para que componentes devo enviar a mensagem de repaint.
Alguém saberia como resolver isso?
Grato pela atenção