Eu to fazendo um programa que lista pokemons, so que quando eu vou descendo com o Scroll chega um momento que o ScrollPane entende que não tem mais conteúdo para mostrar mesmo tendo mais pokemons em baixo.Não consigo achar ninguém que teve o mesmo problema. Me ajudem por favor.
Esse é o código:
public class TelaInicial extends JFrame{
private JPanel Painel;
private JScrollPane scrollPane;
private ArrayList<Pokemon> pokemonLista;
private Dimension dimension;
public TelaInicial(ArrayList<Pokemon> pokemonLista){
super("Pokédex");
this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
this.setSizeJFrame();
this.setLocationRelativeTo(null);
this.getContentPane().setLayout(new BorderLayout());
this.pokemonLista = pokemonLista;
criaPainel();
listaPokemons();
criaScrollPane();
setVisible(true);
}
public void setSizeJFrame() {
DisplayMode tamanho = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayMode();
int width = (int) (tamanho.getWidth()/1.7);
int height = (int) (tamanho.getHeight()/1.1);
this.dimension = new Dimension(width, height);
this.setSize(this.dimension);
}
public void criaScrollPane() {
this.scrollPane = new JScrollPane(this.Painel);
this.add(this.scrollPane, BorderLayout.CENTER);
}
public void criaPainel() {
this.Painel = new JPanel();
this.Painel.setPreferredSize(this.dimension);
}
public Image criaImagemPokemon(String caminho) {
ImageIcon img = new ImageIcon(getClass().getResource(caminho));
Image newImg = img.getImage().getScaledInstance(140, 140, java.awt.Image.SCALE_SMOOTH);
return newImg;
}
public void criaJButtonPokemon(Image img) {
JButton botao = new JButton();
botao.setIcon(new ImageIcon(img));
/*botao.setHorizontalTextPosition(SwingConstants.CENTER);
botao.setForeground(Color.WHITE);
botao.setFont(new Font("Arial", Font.BOLD, 40));
botao.setMargin(new Insets(0, 0, 0, 0));
botao.setBorder(null);
botao.setOpaque(false);
botao.setContentAreaFilled(false);
botao.setBorderPainted(false);
*/
this.Painel.add(botao);
}
public void listaPokemons(){
String caminhoImg = "../imagensPokemon/";
for(int i=0;i<30;i++) {
for(Pokemon poke: this.pokemonLista) {
Image img = criaImagemPokemon(caminhoImg+poke.getId()+".png");
criaJButtonPokemon(img);
}
}
}
}