I have a web application and I need to load all files
in a directory. I worte an applet to do that. The applet
can correctly show up, but when I click the Open directory
button nothing happens (no file chooser pops up). I dont
know why. I have attached my applet code below.
--------------------------------------------------------
public class DirectoryLoaderApplet extends JApplet
implements ActionListener
{
protected JButton openButton, loadButton;
protected JTextField directoryfield;
protected JFileChooser fc;
protected boolean chosen = false;
public DirectoryLoaderApplet()
{
}
public void init()
{
setContentPane(makeContentPane());
}
public Container makeContentPane()
{
directoryfield = new JTextField("", 40);
directoryfield.setMargin(new Insets(5, 5, 5, 5));
directoryfield.setEditable(false);
directoryfield.setBackground(Color.white);
//fc = new JFileChooser();
//fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
openButton = new JButton("Open");
openButton.addActionListener(this);
loadButton = new JButton("Load");
loadButton.addActionListener(this);
JPanel pane = new JPanel();
pane.setBackground(Color.red);
pane.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 1.0;
gbc.weighty = 0.0;
gbc.gridwidth = 2;
gbc.insets = new Insets(3, 0, 5, 0);
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.HORIZONTAL;
pane.add(directoryfield, gbc);
gbc.gridx = 0;
gbc.gridy = 1;
gbc.weightx = 1.0;
gbc.weighty = 0.0;
gbc.gridwidth = 1;
gbc.insets = new Insets(0, 0, 0, 5);
gbc.anchor = GridBagConstraints.EAST;
gbc.fill = GridBagConstraints.NONE;
pane.add(openButton, gbc);
gbc.gridx = 1;
gbc.gridy = 1;
gbc.weightx = 1.0;
gbc.weighty = 0.0;
gbc.gridwidth = 1;
gbc.insets = new Insets(0, 5, 0, 0);
gbc.anchor = GridBagConstraints.WEST;
gbc.fill = GridBagConstraints.NONE;
pane.add(loadButton, gbc);
pane.setBackground(Color.white);
return pane;
}
public void actionPerformed(ActionEvent e)
{
fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
//Handle open button action.
if (e.getSource() == openButton)
{
int returnVal = fc.showOpenDialog
(DirectoryLoaderApplet.this);
if (returnVal == JFileChooser.APPROVE_OPTION)
{
File file = fc.getSelectedFile();
directoryfield.setText(file.getPath());
chosen = true;
}
directoryfield.setCaretPosition(directoryfield.getDocument
().getLength());
}
else if (e.getSource() == loadButton)
{
if (chosen)
{
// do the job
File file = fc.getSelectedFile();
System.out.println(file.getPath());
File[] files = file.listFiles();
for (int k = 0; k < files.length; k++)
{
if (!files[k].isDirectory())
System.out.println(files[k].getName());
}
chosen = false;
directoryfield.setText("");
}
}
}
}