Pessoal, preciso de ajuda, fiz um programa onde o JFileChooser abri uma imagem dentro do JLabel, esta funcionado tudo bonitinho, mas o problema eh que quando abro a imagem ela abre no tamanho original, sendo assim, dependendo do tamanho da imagem fica aparecendo somente uma parte da imagem, consegui coloca-la no tamanho certo, mas preciso redimensionar a imagem manualmente antes de inserir no sistema.
meu codigo e esse abaixo:
[code] JFileChooser fc = new JFileChooser();
FileFilter ft = new FileFilter() {
@Override
public boolean accept(File f) {
String file = f.getName();
return file.endsWith(".jpg") | f.isDirectory();
}
@Override
public String getDescription() {
return "jpg";
}
};
fc.setFileFilter(ft);
fc.showOpenDialog(null);
File f = fc.getSelectedFile();
Image image = null;
try {
image = ImageIO.read(f);
} catch (IOException ex) {
Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
}
labFotoMembros.setIcon(new ImageIcon(image));[/code]
como posso fazer a imagem ser redimensionada dentro do JLabel, de forma automatizada???
Uma pergunta igual a sua foi feita dias atrás! Mas dá uma olhada nesse tópico e vê se te ajuda!
http://www.guj.com.br/posts/list/127809.java
[quote=thiago.correa]Uma pergunta igual a sua foi feita dias atrás! Mas dá uma olhada nesse tópico e vê se te ajuda!
http://www.guj.com.br/posts/list/127809.java[/quote]
Valew camarada, deu certo!!!
Acrescentei isso isso no meu codigo:
labFotoMembros.setIcon(new ImageIcon(image.getScaledInstance(labFotoMembros.getWidth(),labFotoMembros.getHeight(), Image.SCALE_DEFAULT)));
Mais fácil ainda seria substituir o label por um JImagePanel: http://www.guj.com.br/posts/list/56248.java#295271
Eu estou com o mesmo problema, e não consegui resolver…
dem uma olhada no meu codigo fonte:
JFileChooser arquivo = new JFileChooser();
arquivo.setDialogTitle("Selecione a Foto");
arquivo.setFileSelectionMode(JFileChooser.FILES_ONLY);
File file = new File("user.dir");
int option = arquivo.showOpenDialog(this);
if(option == JFileChooser.APPROVE_OPTION) {
file = arquivo.getSelectedFile();
ImageIcon image = new ImageIcon(file.getPath());
lblFoto.setIcon(new ImageIcon(image.getScaledInstance(lblFoto.getWidth(),lblFoto.getHeight(), Image.SCALE_DEFAULT)));
lblFoto.repaint();
}
else{
JOptionPane.showMessageDialog(null,"Você não selecionou nenhum arquivo!", "Erro!", JOptionPane.ERROR_MESSAGE);
}
Pq não tenta usar o JImagePanel sugerido?
Eu to usando o IDE Netbeans! tem como eu inserir um imagePanel no codigo fonte usando o netbens???
Obrigado!
Se eu não me engano, é só clicar no arquivo Java deve e move-lo para o local onde você quer que ele fique.
[code]JFileChooser arquivo = new JFileChooser();
arquivo.setDialogTitle(“Selecione a Foto”);
arquivo.setFileSelectionMode(JFileChooser.FILES_ONLY);
File file = new File(“user.dir”);
int option = arquivo.showOpenDialog(this);
if(option == JFileChooser.APPROVE_OPTION) {
file = arquivo.getSelectedFile();
ImageIcon image = new ImageIcon(file.getPath());
lblFoto.setIcon(new ImageIcon(image.getScaledInstance(lblFoto.getWidth(),lblFoto.getHeight(), Image.SCALE_DEFAULT)));
lblFoto.repaint();
}
else{
JOptionPane.showMessageDialog(null,"Você não selecionou nenhum arquivo!", "Erro!", JOptionPane.ERROR_MESSAGE);
} [/code]
dentro do IF, remove tudo e coloca apenas essas duas linhas . . .
ImageIcon image = new ImageIcon(arquivo.getSelectedFile().getPath());
lblFoto.setIcon(new ImageIcon(image.getImage().getScaledInstance(lblFoto.getWidth(),lblFoto.getHeight(), Image.SCALE_DEFAULT)));
1 curtida