Olá,
nas classes abaixo eu seleciono uma pasta, porém eu tenho que selecionar duas vezes para a pasta abrir. O que está acontecendo?
EscolhePasta.java
[code]import java.io.*;
import javax.swing.JFileChooser;
public class EscolhePasta {
public static String escolheArquivo(){
String arquivoWave;
JFileChooser arquivo = new JFileChooser();
arquivo.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
if(arquivo.showOpenDialog(arquivo) == JFileChooser.APPROVE_OPTION){
arquivoWave = arquivo.getSelectedFile().getPath();
}
else{
arquivoWave = "";
}
return arquivoWave;
}
public static void main(String[] args){
if(!escolheArquivo().equals("")){
File arq = new File(escolheArquivo());
File[] arquivos = arq.listFiles(new FiltroWave());
for(int i=0;i<arquivos.length;i+=10){
String s = arquivos[i].getName();
s = s.substring(0,(s.length()-6));
System.out.println(s);
}
}
}
}[/code]
FiltroWave.java
[code]import java.io.*;
class FiltroWave implements FilenameFilter{
public boolean accept(File dir, String name) {
boolean a = name.endsWith(".wav") ; // método que realmente faz o trabalho :-P
return a;
}
}[/code]
Olá thiagocs, bom dia,
da uma olhada nesse exemplo, pode ajudar vc… O programa abre uma janela JFileChooser e permite vc escolher uma imagem. A imagem selecionada é mostrada em um JLabel.
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.beans.*;
import java.util.*;
import java.io.*;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileView;
public class FileChooserTeste {
public static void main(String[] args) {
ImageViewerFrame frame = new ImageViewerFrame();
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setVisible( true );
}
}
class ImageViewerFrame extends JFrame{
public ImageViewerFrame(){
setTitle("ImageViewerTeste");
setSize( DEFAULT_WIDTH, DEFAULT_HEIGHT );
JMenuBar menuBar = new JMenuBar();
setJMenuBar( menuBar );
JMenu menu = new JMenu("Open");
menuBar.add( menu );
JMenuItem openItem = new JMenuItem("Open");
menu.add( openItem );
openItem.addActionListener( new FileOpenListener() );
JMenuItem exitItem = new JMenuItem("Exit");
menu.add( exitItem );
exitItem.addActionListener( new ActionListener(){
public void actionPerformed( ActionEvent event ){
System.exit(0);
}
});
label = new JLabel();
add( label );
chooser = new JFileChooser();
// definir extenções de imagens visiveis
final ExtensionFileFilter filter = new ExtensionFileFilter();
filter.addExtension("jpg");
filter.addExtension("jpeg");
filter.addExtension("gif");
filter.setDescription("Image files");
chooser.setFileFilter( filter );
chooser.setAccessory( new ImagePreviewer(chooser));
chooser.setFileView( new FileIconView( filter, new ImageIcon("palette.gif")));
}
private class FileOpenListener implements ActionListener{
public void actionPerformed( ActionEvent event ){
chooser.setCurrentDirectory( new File("."));
int result = chooser.showOpenDialog( ImageViewerFrame.this );
if( result == JFileChooser.APPROVE_OPTION )
{
String name = chooser.getSelectedFile().getPath();
label.setIcon( new ImageIcon( name ));
}
}
}
private JLabel label;
private JFileChooser chooser;
public static final int DEFAULT_WIDTH = 300;
public static final int DEFAULT_HEIGHT = 400;
}
class ExtensionFileFilter extends FileFilter{
public void addExtension( String extension ){
if( !extension.startsWith("."))
extension = "." + extension;
extensions.add( extension.toLowerCase() );
}
public void setDescription( String aDescription ){
description = aDescription;
}
public String getDescription(){
return description;
}
public boolean accept( File f ){
if ( f.isDirectory() )
return true;
String name = f.getName().toLowerCase();
for( String extension : extensions )
if( name.endsWith(extension))
return true;
return false;
}
private String description = "";
private ArrayList<String> extensions = new ArrayList<String>();
}
class FileIconView extends FileView{
public FileIconView( FileFilter aFilter, Icon anIcon ){
filter = aFilter;
icon = anIcon;
}
public Icon getIcon( File f ){
if( !f.isDirectory() && filter.accept(f) )
return icon;
else
return null;
}
private FileFilter filter;
private Icon icon;
}
class ImagePreviewer extends JLabel {
public ImagePreviewer( JFileChooser chooser ){
setPreferredSize( new Dimension( 100, 100 ) );
setBorder( BorderFactory.createEtchedBorder() );
chooser.addPropertyChangeListener( new PropertyChangeListener(){
public void propertyChange( PropertyChangeEvent event ){
if( event.getPropertyName() == JFileChooser.SELECTED_FILE_CHANGED_PROPERTY )
{
File f = ( File ) event.getNewValue();
if ( f == null )
{
setIcon( null );
return;
}
ImageIcon icon = new ImageIcon(f.getPath());
if( icon.getIconWidth() > getWidth() )
icon = new ImageIcon( icon.getImage().getScaledInstance( getWidth(), -1, Image.SCALE_DEFAULT ) );
setIcon(icon);
}
}
});
}
}
é um exemplo completo para utilizar JFileChooser.
espero ter ajudado
atenciosamente
Muito bom funcionou, como em seguida, criar um botão que tenha o método de pegar a imagem do jPanel e gravar no Banco de Dados?
Valeu galera!
[quote=Jefries]Muito bom funcionou, como em seguida, criar um botão que tenha o método de pegar a imagem do jPanel e gravar no Banco de Dados?
Valeu galera![/quote]
Oi Jeffries, não ressuscite tópicos. É pouco provável que o pessoal lá de 2006 volte aqui para te ajudar. De qualquer forma, mesmo que volte, é sempre melhor abrir um tópico novo no GUJ, com o título mais adequado à sua dúvida, do que trazer das cinzas um muito velho.