Pessoal, eu coloquei um drag’n drop de imagens no meu programa, desktop, no caso eu posso selecionar e arrastar a imagem ate ele que funciona tranquilo, o problema ocorre na hora de salvar, quando eu seleciono ele salva tranquilo, mas quando eu arrasto ele nao salva no banco.
Eu transformo a imagem em array e salvo no banco, meu problema é que, eu sei onde é a causa do problema, só não sei como solucionar.
JFileChooser chooser = new JFileChooser();
chooser.setAcceptAllFileFilterUsed(false);
FileNameExtensionFilter filter = new FileNameExtensionFilter("Somente Imagens (.jpg e .png)", "jpg", "png");
chooser.addChoosableFileFilter(filter);
chooser.setDialogTitle("Selecione uma foto para o visitante");
chooser.showOpenDialog((null));
File f = chooser.getSelectedFile();
filename = f.getAbsolutePath();
ImageIcon imageIcon = new ImageIcon(new ImageIcon(filename).getImage().getScaledInstance(campofoto.getWidth(), campofoto.getHeight(), Image.SCALE_DEFAULT));
campofoto.setIcon(imageIcon);
Bom, eu pego o arquivo selecionado do fileChosser e transformo, mas eu queria que pegasse o campo, sabe? O campo da foto seria transformado.
Agora minha classe do drag:
public void drop(DropTargetDropEvent ev) {
//aceita itens de fora
ev.acceptDrop(DnDConstants.ACTION_COPY);
//dropando itens
Transferable t = ev.getTransferable();
//formatos dos itens
DataFlavor[] df = t.getTransferDataFlavors();
//loop
for (DataFlavor f : df) {
try {
if (f.isFlavorJavaFileListType()) {
List<File> files = (List<File>) t.getTransferData(f);
for(File file: files){
displayImage(file.getPath());
}
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Erro ao dropar imagem"+ex);
}
}
}
e aqui eu mostro ela no JLabel:
private void displayImage(String path){
BufferedImage img =null;
try {
img=ImageIO.read(new File(path));
} catch (Exception e) {
}
Image imagem = img.getScaledInstance(260, 240, 1000);
ImageIcon icon = new ImageIcon(imagem);
imageLabel.setIcon(icon);
pathLabel.setText(path);
}