Queria saber como faço para colocar imagens no frame
adicione a imagem a um JPanel e depois adicione o JPanel a um JFrame !
Fafa…
Para usar fotos faço o sequinte:
...
JLabel foto;
File foto_daniel;
ImageIcon imageIcon;
public void montaIncialDesenvolvimento(){
foto = new JLabel();
//criar um objeto File para receber minha foto e pode-la usar no metodo GeraThumbnail
foto_daniel = new File("foto_daniel.jpg");
// criar um objeto ImageIcon para receber o retorno do metodo GeraThumbnail
ImageIcon imageIcon = new ImageIcon();
//faça a invocação do metodo GeraThumbmail colocando o "File" e o tamanho da largura que você
//quer que seja exibida sua imagem em pixel onde imagemIcon vai receber seu retorno.
imageIcon = GeraThumbnail(foto_daniel, 150);
// invocação do metodo setIcon da Classe JLabel que leva como argumento minha imageIcon
foto.setIcon(imageIcon);
}
//segue abaixo o metodo GeraThumbnail que gera como retorno uma ImageIcon e
//pede como argumento sua File e uma int com
//a largura que você deseja exibir a imagem
private static ImageIcon GeraThumbnail(File arquivo, int labelWidth){
ImageIcon imagem = new ImageIcon(arquivo.getAbsolutePath());
ImageIcon thumbnail = null;
if(imagem.getIconWidth() > labelWidth){
thumbnail = new ImageIcon(
imagem.getImage().getScaledInstance(labelWidth, -1, Image.SCALE_DEFAULT));
} else
thumbnail = imagem;
return thumbnail;
}
Aí vc pergunta porque você usa o Thumbnail? Por que ele é prático… Vc pode ir ajustando o tamanho que vc quiser de sua imagem no seu codigo… independente do tamanho original dela… Ao inves de você ficar redimensionando o tempo todo sua imagem direto no arquivo .jpg para ficar melhor no seu frame… com o Thumbnail é só alterar o tamanho dele no seu codigo que ele ajusta na hora!!! Mais prático e mais rápido…
Espero ter ajudado de alguma forma…
Abraço…
Muito obrigada me ajudou muito
vlw msm vini, essa classe vai ajuda bastante
Tb pode se usar uma JLayeredPane, que tem varias camadas, voce seta na ultima camada uma label com a imagem e na camada acima coloca os componentes da Frame!
JLayeredPane esse eu naum conhecia, vo testa ele tbm, vlw^^
Eh bem bom, eu to usando aqui!
Só para completar.
No Java, ele aceita (dentro do campo texto) as tags HTML, ou seja, se vc colocar “Texto Bold e Italic !” e funciona também… Então, se colocar uma tag de imagem, ele aceita.
Dependendo da sua necessidade, esssa forma pode ser mais fácil.
edson vlw mesmo cara, vou tenta hj msm cara,
isso pode me facilita muito a vida o.O
vlw msm :lol:
bem já q vcs ja me ajudaram tanto, alguem poderia me dize como se usa o jScrollPane :oops: ,
tipo, ele não aceita Layouts??
para eu colocar um jScrollPane com um GridLayout ou outro,eu teria q coloca um Jpanel dentro do jScrollPane???
eu tentei usa assim, só q naum aparece nada
Sim, você precisa colocar um JPanel dentro do JScrollPane.
E nele os componentes precisam estar presentes. Caso contrário, ele terá tamanho 0.
Se você quiser definir um tamanho para um JPanel vazio use o método setPreferredSize.
eu adicionei componentes ao Jpanel, mas se eu coloca-lo dentro de um JScrollpane ele não aparece nada, aliás eu tento colocar qualquer coisa dentro de um JScrollPane e não aparece nada, eu devo definir algo diferente em um JscrollPnae ou eu adiciono igual ao um JPanel???
vlw de novo pela ajuda :oops: …
Você deve adicionar o Panel no ScrollPane e o ScrollPane no seu form. É isso que vc está fazendo?
sim vini, é exatamente isso q eu to fazenu…
só se eu muda de JScrollPane pra Jpanell da certu, ta dandu erro por ser um JScrollPane…
e eu precisava de um JScrollPane… mas se não dé certu eu tbm poderia colocar uma barra de rolagem, só q o código ficaria bem maior…
Você deu um setPreferredSize no seu JPanel?
O tamanho que deve ser definido é o tamanho total do painel, como se ele tivesse fora do ScrollPane e completamente visível. O scrollpane usa essa propriedade para saber como colocar as barras de rolagem.
[code] while (c < 19) {
c = c + 1;
l = 0;
while (l < 19) {
img[l][c] = new JLabel();
img[l][c].setText("coluna " + c + " linha " + l);
pnlCampo.add(img[l][c]);
}
}
frTela.add(jspCampo);
jspCampo.add(pnlCampo);
frTela.setVisible(true);[/code]
[code]
while (c < 19) {
c = c + 1;
l = 0;
while (l < 19) {
l = l + 1;
img[l][c] = new JLabel();
img[l][c].setText("coluna " + c + " linha " + l);
pnlCampo.add(img[l][c]);
}
}
frTela.add(pnlCampo);
frTela.setVisible(true);[/code]
o 1º código não aparece nada, mas o 2º aparece certinhu…
eu tentei dando tamanho tamanhu pro JPanel, mas tbm naum deu certu…
tentei tbm da um setVisible(true) pra td^^
pq o JPanel funciona certu fora do JScrollPane mas dentro não aparece nada??
No primeiro exemplo, troque de lugar as linhas 16 e 17.
haUAhuaHauhaUAhuA
q erro tonto o meu =/
vlw msm vini