[Resolvido]Adicionar ScrollPane a um JPanel

Qual o seu problema? Ué você tinha falado que tinha dado certinho. É um problema novo? Mas pelo menos o problema inicial foi resolvido? Tente explicar bem detalhado que as vezes eu sou ruim de entender certas coisas.

"
Este método ExibeGUI() está em outra classe, eu queria criar o jscrollpane dentro da própria classe ThumbNail…

Só que não dá porque ela é um panel… "

É o problema inicial ainda, eu consegui adicionar o scrollpane só que de fora da classe ThumbNail (que é um panel).

Queria adicionar o scroll de dentro da classe. Fiz o thumbnail como sendo um panel porque achei que fosse o certo.

[quote=Gabriel Lopes]"
Este método ExibeGUI() está em outra classe, eu queria criar o jscrollpane dentro da própria classe ThumbNail…

Só que não dá porque ela é um panel… "

É o problema inicial ainda, eu consegui adicionar o scrollpane só que de fora da classe ThumbNail (que é um panel).

Queria adicionar o scroll de dentro da classe. Fiz o thumbnail como sendo um panel porque achei que fosse o certo.[/quote]

Claro que dá, ele é um painel vamos dizer pai dos outros paines que vao ter as imagens e o nome da imagem certo? Tem como voce colocar o construtor da classe ThumbNail aqui? aquele metodo private void ajustaImagensThumbNail() é o metodo para criar os outros paineis com imagens certo?

[code]public ThumbNail(List imagens,String desc, int h, int w,Controlador c) {
control = c;
altura = h;
largura = w;
listaArqImagens = imagens;
listaImagens = apanhaImagens();
descricao = desc;
listaBfi = apanhaListaThumbNail(listaImagens);

    configInicial();
    
    ajustaImagensThumbNail();        
}

/ConfigInicial/
private void configInicial() {
GridLayout testeLay = new GridLayout(0, 2);
testeLay.setVgap(20);
setLayout(testeLay);

    setBorder(BorderFactory.createEtchedBorder());
    setSize(400, 600);
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    setLocation(screenSize.width-getWidth(), (screenSize.height-getHeight()+5)/2);        
    
    
}[/code]

Tente no construtor:

add( new JScrollPane(this) );

configInicial(); 

ajustaImagensThumbNail();   

adding container’s parent to itself

E assim? No construtor.

JScrollPane rollover = new JScrollPane();

rollover.setViewportView(this);

Ta foda isso ai heim AHSDUIOHASIDHIASHD…To te ajudando mas to aprendendo junto contigo.

Cara é porque eu to estudando para concurso e te ajudando ao mesmo tempo aqui senão ja tinha lido a classe na API Java e visto como resolver isso.

E mostra como seu código todo está agora porque já ate me perdi de quantas alterações você fez ai.

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package GUI;

import GUI.Interpretador;
import control.Controlador;
import java.awt.;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.
;
import javax.swing.border.BevelBorder;
import javax.swing.border.EtchedBorder;
import modelo.Debug;

/**
*

  • @author GABRIEL
    */
    public class ThumbNail extends JPanel {

    private Component c;
    private List listaArqImagens;
    private List listaImagens;
    private List listaBfi;
    private int altura, largura;
    private String descricao;
    private SlideShow slide;
    private Controlador control;
    private JPanel pnlThumb;

    public ThumbNail(List imagens,String desc, int h, int w,Controlador c) {
    control = c;
    altura = h;
    largura = w;
    listaArqImagens = imagens;
    listaImagens = apanhaImagens();
    descricao = desc;
    listaBfi = apanhaListaThumbNail(listaImagens);

    JScrollPane p = new JScrollPane();
    p.setViewportView(this);
     configInicial();
     
     ajustaImagensThumbNail();        
    

    }

    private List apanhaImagens(){
    List t = new ArrayList();
    for(File f : listaArqImagens){
    if(f.getName().endsWith(“jpg”) || f.getName().endsWith(“jpeg”)){
    try {
    t.add(ImageIO.read(f));
    } catch (IOException ex) {
    Logger.getLogger(Interpretador.class.getName()).log(Level.SEVERE, null, ex);
    control.exit(ex);
    }
    }
    }
    return t;
    }

    private void ajustaImagensThumbNail(){

     JLabel img;
     JLabel nomeImg;
     JPanel p;
     BorderLayout pnlLay;
     int k = 0;
     
     for (BufferedImage i : listaBfi) {
         /*Cria o Painel que estará a imagem*/
         pnlLay = new BorderLayout(5, 0);
         p = new JPanel(pnlLay);
         configuraMouseListener(p);
         
         /*Configura as Labels que serão adicionadas no painel*/
         img = new JLabel(new ImageIcon(i));  
         nomeImg = new JLabel(listaArqImagens.get(k).getName());
         
         /*Posiciona corretamente dentro do painel*/
         p.add(img,pnlLay.WEST);
         p.add(nomeImg,pnlLay.SOUTH);
         
         add(p);
         k++;           
     }
    

    }

    private void configuraMouseListener(Component c){
    c.addMouseListener(new MouseAdapter() {
    @Override
    public void mouseClicked(MouseEvent evt){
    JPanel panel = (JPanel)evt.getSource();
    JLabel label = (JLabel) panel.getComponents()[0];
    ImageIcon i = (ImageIcon)label.getIcon();
    slide = new SlideShow(listaImagens,3000,i.getImage(),control);

             }
         });
    

    }

    public Image ampliaImagem(Image img){
    return img;
    }

    private List apanhaListaThumbNail(List imagens) {
    BufferedImage bf, tmp;
    Graphics2D graphics;
    List listaBfi = new ArrayList();

     for (Image i : imagens) {
         /*
          * Cria um objeto afim de desenhá-lo, com mesmas proporções da imagem
          */
         bf = new BufferedImage(largura, altura, BufferedImage.TYPE_INT_RGB);
         graphics = bf.createGraphics();
         /*
          * Desenha a imagem no objeto bf
          */
         graphics.drawImage(i, 0, 0, largura, altura, null);
    
         listaBfi.add(bf);
     }
    
     return listaBfi;
    

    }

    private void configInicial() {
    GridLayout testeLay = new GridLayout(0, 2);
    testeLay.setVgap(20);
    setLayout(testeLay);

     setBorder(BorderFactory.createEtchedBorder());
     setSize(400, 600);
     Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
     setLocation(screenSize.width-getWidth(), (screenSize.height-getHeight()+5)/2);        
    

    }
    }
    [/code]

Nada… tou pelejando aqui também.

CAra uma pergunta bem básica, esse ThumbNail que é um painel não está contido em um JFrame não? Se estiver, coloca o código do JFrame ai.

Ele é um pane exatamente para ser adicionado por um frame.

A Classe interpretador faz isso com aquele código exibeGUI() que já mencionei aqui…

Cara, acho que vou deixar assim mesmo…

Eu queria já enviá-lo com scroll porque ficaria melhor, já que transformarei-o em lib… pois foi um grande problema pra mim fazer ThumbNail…

Muitíssimo obrigado aí brother!!!