|
puremm (TechnicalUser) |
11 Sep 07 17:53 |
Hi - not sure if this is the right forum - but
Ive written a small applet ans singed it to select a few files and put them in a list . All initated by java script calls. The trouble is as soon as the jfilechooser dialog is shown the applet freezes for up to 10 mins maybe more ?
I've downloaded the latest jdk and jre -- any help is gratefuly received. I get the same effect using IE7 and firefox
import java.net.*; import java.io.*; import java.awt.*; import java.lang.String.*; import java.beans.*; import javax.swing.*; import java.util.List;
public class PictDeskUploader extends JApplet //implements ActionListener { public static final long serialVersionUID = 1L; private DefaultListModel listModel; // We need a model to adjust the list public JList pictFileList; // the Jlist object that will hold the list of files Container contentpane; // used to reference where the list will be placed public JFileChooser fc; // file chooser private File[] files; // Array to hold the file chooser results
public void init () { //evt.start(); try { javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
fc = new JFileChooser();
contentpane = this.getContentPane(); contentpane.setLayout(new FlowLayout()); listModel = new DefaultListModel(); pictFileList = new JList(listModel); pictFileList.setSelectedIndex(0); pictFileList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); contentpane.add(new JScrollPane(pictFileList)); }catch(Exception e){ e.printStackTrace(); } }
public int addFiles() { int i; //array loop counter
String fname ; fc.setMultiSelectionEnabled(true); // Allow for multiple selections fc.showOpenDialog (this); // Show the file chooser dialog to the user files=fc.getSelectedFiles(); // Load the file array with the current selected files //evt.start(); for ( i = 0; i < files.length; i++) { //loop through the array of files and only add if we havent got it already fname=files.getPath() ; if (pictFileList.getModel().getSize() > 0 ) { if ( pictFileList.getNextMatch(fname, 0, javax.swing.text.Position.Bias.Forward) == -1 ) listModel.addElement ( fname ); } else listModel.addElement ( fname ); } // File Add files return 0; } public int deleteFiles() { int i; //array loop counter // File remove code if (pictFileList.getModel().getSize() > 0 ){ // only if more than 1 file for(i = 0; i < pictFileList.getModel().getSize(); i++) { int index = pictFileList.getSelectedIndex(); listModel.remove(index); } } return 0; }
} |
|