JFileChooser öffnet sich nicht

Sacrent

Grünschnabel
Hallo,

bin gerade am verzweifeln. Ich bin dabei in mein unfertiges Uploadtool einen JFileChooser einzubauen. Und egal wie ich es mache, es tut nicht. Aber es tut in anderen Beispielen. Also hier die betroffenen Codes:

FMApplet.java:
Code:
package classes;

import javax.swing.JApplet;
import javax.swing.SwingUtilities;

public class FMApplet extends JApplet 
{
  // on load
  public void init() 
  {
    // create the GUI
    try 
    {
      SwingUtilities.invokeAndWait(new Runnable() 
      {
        public void run() 
        {
          createGUI();
        }
      });
    } 
    catch (Exception e) 
    { 
      System.err.println("Failed to create the GUI");
    }
  }
  
  // creates the GUI
  private void createGUI() 
  {
    FMPanel panel = new FMPanel();
    panel.setOpaque(true); 
    setContentPane(panel);     
  }        
}

FMPanel.java:
Code:
package classes;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JTable;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.Icon;
import javax.swing.UIManager;
import javax.swing.JOptionPane;
import javax.swing.JFileChooser;
import java.io.File;


public class FMPanel extends JPanel implements ActionListener 
{
    
  private FMTree treePanel;
  public static Icon folderIcon;
  public static Icon fileIcon;

  public FMPanel() 
  {
    super(new BorderLayout());
    
    // create the components
    treePanel = new FMTree();
    
    JButton refreshButton = new JButton("Aktualisieren");
    refreshButton.setActionCommand("refresh");
    refreshButton.addActionListener(this);
    
    JButton newfolderButton = new JButton("Neuer Ordner");
    newfolderButton.setActionCommand("new_folder");
    newfolderButton.addActionListener(this);
    
    JButton uploadButton = new JButton("Uploaden");
    uploadButton.setActionCommand("upload");
    uploadButton.addActionListener(this);
    
    JButton downloadButton = new JButton("Auswahl downloaden");
    downloadButton.setActionCommand("download");
    downloadButton.addActionListener(this);

    // layout
    treePanel.setPreferredSize(new Dimension(199, 500));
    add(treePanel, BorderLayout.WEST);
    
    FMTable table = new FMTable();
    table.setPreferredSize(new Dimension(600, 500));
    add(table, BorderLayout.EAST);

    GridLayout grid = new GridLayout(0,4);
    grid.setHgap(2);
    JPanel panel = new JPanel(grid);
    panel.add(refreshButton);
    panel.add(newfolderButton);
    panel.add(uploadButton); 
    panel.add(downloadButton);
    add(panel, BorderLayout.SOUTH);
    
  }
  
  public void actionPerformed(ActionEvent e) 
  {
    String command = e.getActionCommand();
    
    if (command == "new_folder") 
    {
      JOptionPane.showMessageDialog(null, "Sie müssen eine Ganzzahl eingeben", "Eine Nachricht", JOptionPane.WARNING_MESSAGE);
    } 
    else if (command == "upload") 
    {
      JFileChooser chooser = new JFileChooser();

      chooser.setMultiSelectionEnabled(false);
      if (chooser.showOpenDialog(null) == 
                                    JFileChooser.APPROVE_OPTION)
         System.out.println ("Datei "+chooser.getSelectedFile()+
                            " ausgewählt.");


    } 
    else if (command == "download") 
    {

    }
  }

}


Wenn ich nun auf den Button "Upload" klicke passiert einfach nichts. In einem Beispiel wurde der Chooser im Konstruktor der Klasse initiiert. Wenn ich das mache zeigt es nur noch einen grauen Hintergrund anstand meinem UI. Außerdem wird sämtlicher Code (z.B.: Dialogbox) nach dem Initiieren im Action-Handler nicht ausgeführt.

Ich hab jetzt schon viel rumgesucht aber irgendwie hatte keiner ein solches Problem.

Bitte könnt ihr mir sagen, was ich falsch mache.
 
Ah, ich sehe gerade, du hast den FileChooser ja in einem Applet laufen.
Das geht so einfach nicht. Ein Applet kann so ohne weiteres nicht einfach auf das Dateisystem zugreifen.
Informiere dich mal darüber, wie man Applets signiert, damit kann man das nämlich erlauben.

*grüssle*
 
Hi Artorius,

werd ich machen. Nur komisch finde ich dass ein Beispiel-jnlp von der java-sun Seite den FileChooser öffnet mit der Frage, ob ich es erlauben will, aber wenn ich mein jnlp launche dann kommt nix wenn ich "Upload" drücke.
 
Als Ausweichmöglichkeit kannst du den Datenaustausch auch über ein JTextArea machen.
 
Hi Vereth,

wie meinst du das? Es geht mir ja gerade nur darum, das etwas das funktionieren sollte, es nicht tut. Und irgendwas an meinem Applet muss das hervorrufen. Letztendlich möchte ich den FileChooser dazu benutzen Dateien und Ordner aus dem lokalen System auswählen zu können und dann über mein Applet per sFTP auf einen Server zu übertragen (und später auch andersherum). Das hier: http://java.sun.com/docs/books/tutorial/uiswing/components/filechooser.html angegebene Beispiel funktioniert im Java-Launcher problemlos. wenn ich mein Applet dort starte und den Button drücke passiert eben nichts ...
 
Hi

solange Applets nicht signiert sind, wie Artorius schon gesagt hat, haben sie nur sehr wenige Rechte.
 
Hi alle zusammen,

sorry für das Missverständnis. Habe gerade gelesen, wie man signiert und es dann auch gemacht und jetzt funktioniert es. Man bin ich blöd.

Danke für die Hilfe.
 

Neue Beiträge

Zurück