Quando eu preciso redimensionar uma imagem(igual ao preview de um FileChooser) eu faço + ou - assim(só para te dar uma idéia):
protected void paintComponent(Graphics g) {
if (novaImagem != null) {
int x = getWidth()/2 - novaImagem.getIconWidth()/2;
int y = getHeight()/2 - novaImagem.getIconHeight()/2;
if (y < 0) {
y = 0;
}
if (x < 5) {
x = 5;
}
novaImagem.paintIcon(this, g, x, y);
}
}
[code]
//método responsável por atualizar a imagem q é mostrada no rótulo
private void atualizaLabel(ImageIcon icon){
img.setIcon(icon);
if (icon != null) {
img.setText(null);
//repaint();
} else {
img.setText("Imagem não disponível!");
}
}[/code]
Aí, dentro do file chooser eu só fazia assim:
[code]
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
imagem=new ImageIcon(file.getPath());//pega o caminho da imagem
novaImagem=new ImageIcon(imagem.getImage().//pega a imagem com novo tam
getScaledInstance(90, -1,
Image.SCALE_DEFAULT));
atualizaLabel(novaImagem);
repaint(); //atualiza o JLabel com a img selecionada
Desculpe a minha ignorancia mas, eu não gosto muito de usar o java.awt.image, existe algum controle que seja do swing pra imagens!? Porque eu acharia mais fácil um componente que exiba as figuras no lugar que no convém!!