Olá galera!
Seguinte, quero colocar fotos num cadastro de clientes. Já dei uma pesquisada, e consigui criar o objeto, e chama-lo num botão…
O código tá assim :
JFileChooser fileChooser = new JFileChooser();
fileChooser.setDialogTitle("Selecione a imagem desejada ");
fileChooser.setApproveButtonText("Selecionar");
//fileChooser.
fileChooser.setVisible(true);
fileChooser.setSize(100,80);
int returnVal = fileChooser.showOpenDialog(null);
Eu vou salvar as fotos no banco de dados, mas com o banco tá tudo certo.
A minha dúvida está em como filtrar as imagens, e como exibir a imagem selecionada ?
Posso exibir a imagem selecionada em um jpanel ???
Valquiria, é só fazer um ImageFilter para filtrar as suas imagens.
Eu lembro de já ter posto um exemplo desses por aqui... dá uma pesquisada.
Do site da Sun:
publicclassImageFilterextendsFileFilter{//Accept all directories and all gif, jpg, tiff, or png files.publicbooleanaccept(Filef){if(f.isDirectory()){returntrue;}Stringextension=Utils.getExtension(f);if(extension!=null){if(extension.equals(Utils.tiff)||extension.equals(Utils.tif)||extension.equals(Utils.gif)||extension.equals(Utils.jpeg)||extension.equals(Utils.jpg)||extension.equals(Utils.png)){returntrue;}else{returnfalse;}}returnfalse;}//The description of this filterpublicStringgetDescription(){return"ApenasImagens";}}
importjava.io.File;importjavax.swing.ImageIcon;/* Utils.java is a 1.4 example used by ImageChooser.java. */publicclassUtils{publicfinalstaticStringjpeg="jpeg";publicfinalstaticStringjpg="jpg";publicfinalstaticStringgif="gif";publicfinalstaticStringtiff="tiff";publicfinalstaticStringtif="tif";publicfinalstaticStringpng="png";/* * Pega a extensão do Arquivo. */publicstaticStringgetExtension(Filef){Stringext=null;Strings=f.getName();inti=s.lastIndexOf('.');if(i>0&&i<s.length()-1){ext=s.substring(i+1).toLowerCase();}returnext;}/** Returna um ImageIcon, ou null se o caminho é inválido */protectedstaticImageIconcreateImageIcon(Stringpath){java.net.URLimgURL=Utils.class.getResource(path);if(imgURL!=null){returnnewImageIcon(imgURL);}else{System.err.println("Oarquivonãopodeserencontrado:"+path);returnnull;}}}
E um ImagePreview:
importjavax.swing.*;importjava.beans.*;importjava.awt.*;importjava.io.File;/* ImagePreview.java é um 1.4 exemplo usado pelo FileChooser**/publicclassImagePreviewextendsJComponentimplementsPropertyChangeListener{ImageIconthumbnail=null;Filefile=null;publicImagePreview(JFileChooserfc){setPreferredSize(newDimension(100,50));fc.addPropertyChangeListener(this);}publicvoidloadImage(){if(file==null){thumbnail=null;return;}//Don't use createImageIcon (which is a wrapper for getResource)//because the image we're trying to load is probably not one//of this program's own resources.ImageIcontmpIcon=newImageIcon(file.getPath());if(tmpIcon!=null){if(tmpIcon.getIconWidth()>90){thumbnail=newImageIcon(tmpIcon.getImage().getScaledInstance(90,-1,Image.SCALE_DEFAULT));}else{//sem necessidade de miniaturizarthumbnail=tmpIcon;}}}publicvoidpropertyChange(PropertyChangeEvente){booleanupdate=false;Stringprop=e.getPropertyName();//Se o diretório muda,não mostra a imagem.if(JFileChooser.DIRECTORY_CHANGED_PROPERTY.equals(prop)){file=null;update=true;//Se um arquivo é seleciodado, find out which one.}elseif(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY.equals(prop)){file=(File)e.getNewValue();update=true;}//Atualiza o preview correspondente.if(update){thumbnail=null;if(isShowing()){loadImage();repaint();}}}protectedvoidpaintComponent(Graphicsg){if(thumbnail==null){loadImage();}if(thumbnail!=null){intx=getWidth()/2-thumbnail.getIconWidth()/2;inty=getHeight()/2-thumbnail.getIconHeight()/2;if(y<0){y=0;}if(x<5){x=5;}thumbnail.paintIcon(this,g,x,y);}}//fim do método paintComponent()}
Esse mecanismo de miniatura usado no ImagePreview srve para pôr por exemplo num JLabel, e esse num JPanel.
valquiriamatter
Valew pela ajuda…
Só mais uma dúvida…
To com fazendo meu projeto no netbeans…
Ai nesse caso, eu faço 3 classe, para intereragir com a minha janela ???