Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > (Ayuda) ¿Cómo seteo diferentes acciones según archivo con JFileChooser

muchachos como les va? otra vez soy yo.
esta vez me líe un poco con el filechooser de mi programa, agregue 4 filtros pero solo puedo ejecutar acción sobre uno. la cuestion sería que loop debo usar para que cada tipo de archivo tenga su accion? por ejemplo file a (ejecuta comandos para abrir .txt) file b (ejecuta comandos para abrir.gif)...
les dejo el codigo que implente en mi programa. gracias


openFile.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0)
{
JFileChooser fileChooser = new JFileChooser();
fileChooser.setAcceptAllFileFilterUsed(false);
//Filtros JFileChooser
FileNameExtensionFilter ksc = new FileNameExtensionFilter(".KSC Korg Sample Collection Files", "KSC");
FileNameExtensionFilter kmp = new FileNameExtensionFilter(".KMP Korg Sample Instruments Files", "KMP");
FileNameExtensionFilter metaKrome = new FileNameExtensionFilter("META.IMG Krome Samples", "IMG");
FileNameExtensionFilter metaKross = new FileNameExtensionFilter("META.IMG Kross Samples", "IMG");
fileChooser.addChoosableFileFilter(metaKrome);
fileChooser.addChoosableFileFilter(metaKross);
fileChooser.addChoosableFileFilter(ksc);
fileChooser.addChoosableFileFilter(kmp);


int returnVal = fileChooser.showOpenDialog(null);
if (returnVal == 0)
{
KSTool.this.metaImgFilepath = fileChooser.getSelectedFile().getPath();
KSTool.this.myHeader.readMetaFileHeader(KSTool.this.metaImgFilepath);

KSTool.this.sampleKscFilepath = fileChooser.getSelectedFile().getPath();
KSTool.this.myKSC.readKSC(KSTool.this.sampleKscFilepath);

//switch(){};

if (KSTool.this.myHeader.getIdKorg() != null)
{
System.out.println("Open File access granted.");
System.out.println("Loaded " + KSTool.this.myHeader.getNbMultisample() + " Instrumens and " + KSTool.this.myHeader.getNbWaveformDescription() + " Waveforms Samples.");
KSTool.this.currentMultisample = 0;
KSTool.this.currentMultisampleDescription = 0;
KSTool.this.currentWaveform = 0;
System.out.println("Instruments Samples correctly loaded");

KSTool.this.saveFile.setEnabled(true);
KSTool.this.saveCollection.setEnabled(true);
System.out.println("Save Menus Activated");
KSTool.this.runWaveform.setEnabled(true);
System.out.println("Run Waveform Menu Activated");
KSTool.this.appProperties.setEnabled(true);
System.out.println("View - Properties Menu Activated");
KSTool.this.playAudio.setEnabled(true);
System.out.println("View - Play Audio Menu Activated");
System.out.println("*****************************************");

//Crea el nombre del archivo .ksc
//KSTool.this.treeNode = new DefaultMutableTreeNode();
//Instruments and layers
int nbProgram = 0;
int bank = 0;
for(
KSTool.this.currentMultisample = 0;
KSTool.this.currentMultisample != KSTool.this.myHeader.getNbMultisample();
KSTool.this.currentMultisample++)
{
myMultisampleInfo.readMultisampleInfo(KSTool.this.metaImgFilepath,
KSTool.this.currentMultisample);
DefaultMutableTreeNode instrumentNode = new DefaultMutableTreeNode(bank + ":" + nbProgram++ + ":" +
(KSTool.this.myMultisampleInfo.getMultisampleName()));
collection.add(instrumentNode);

System.out.println("Instrument: " + (KSTool.this.myMultisampleInfo.getMultisampleName()) + " correctly loaded");}
System.out.println("*****************************************");
//Waveforms
for(KSTool.this.currentWaveform = 0;KSTool.this.currentWaveform != KSTool.this.myHeader.getNbWaveformDescription() ;KSTool.this.currentWaveform++)
{
myWaveform.readWaveformDescription(KSTool.this.metaImgFilepath,
KSTool.this.myHeader.getNbMultisample(),
myHeader.getNbMultisampleDescription(),
currentWaveform);
int nbSamples = 0;
DefaultMutableTreeNode waveformListNode = new DefaultMutableTreeNode (
myWaveform.getSampleName()
);
wave2.add(waveformListNode);
System.out.println("Waveform: " + (KSTool.this.myWaveform.getSampleName()) + " correctly loaded");
System.out.println("*****************************************");
}

KSTool.this.repaint();

}
else
{
final JPanel panel = new JPanel();
JOptionPane.showMessageDialog(panel, "Could not open file", "Error", JOptionPane.ERROR_MESSAGE);
}
}
else{
System.out.println("File access cancelled by user.");
}
}});

agosto 14, 2014 | Registered Commenternewstyl3

Se resuelve consultando la extensión del archivo

http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html#filters

Por cierto, te he contestado a otra cuestión reciente, sobre JTree, y no has comentado si te ha funcionado bien, o has tenido más problemas.

agosto 14, 2014 | Registered Commenterchoces

Hola, no había leido lo del jtree. igualmente lo solucione creando una clase RenderTree donde defini los :
*ImageIcon
*getTreeCellRendererComponent
y después se lo aplique a la clase main.
Gracias por lo del filechooser, ahora lo veo y comento como me quedo :D

agosto 14, 2014 | Registered Commenternewstyl3