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!!!