tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
821
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    smartin123 smartin123 ist offline Mitglied Silber
    Registriert seit
    Mar 2007
    Beiträge
    65
    Hallo Zusammen,

    ich hab leider ein Problem mit meinem FileChooser, wo ich trotz google- und forensuche nicht die Lösung gefunden habe. Es scheint kein bekanntest Problem zu sein, hab wahrscheinlich irgendwo einen doofen Fehler.

    Hier der Quellcode:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    
     package chooser; 
     
    import javax.swing.JFileChooser; 
    import javax.swing.JPanel; 
    import javax.swing.JFrame; 
    import javax.swing.JButton; 
    import javax.swing.filechooser.FileFilter; 
    import java.awt.Rectangle; 
    import java.io.File; 
     
    public class FileChooserExample extends JFrame { 
     
       private static final long serialVersionUID = 1L; 
       private JPanel jContentPane = null; 
       private JButton jButtonOeffne = null; 
       private JFileChooser fileChooser = null; 
     
       /** 
        * This is the default constructor 
        */ 
       public FileChooserExample() { 
          super(); 
          initialize(); 
       } 
     
       /** 
        * This method initializes this 
        * 
        * @return void 
        */ 
       private void initialize() { 
          this.setSize(300, 200); 
          this.setContentPane(getJContentPane()); 
          this.setTitle("JFrame"); 
       } 
     
       /** 
        * This method initializes jContentPane 
        * 
        * @return javax.swing.JPanel 
        */ 
       private JPanel getJContentPane() { 
          if (jContentPane == null) { 
             jContentPane = new JPanel(); 
             jContentPane.setLayout(null); 
             jContentPane.add(getJButtonOeffne(), null); 
          } 
          return jContentPane; 
       } 
     
       /** 
        * This method initializes jButtonOeffne    
        *     
        * @return javax.swing.JButton    
        */ 
       private JButton getJButtonOeffne() { 
          if (jButtonOeffne == null) { 
             jButtonOeffne = new JButton(); 
             jButtonOeffne.setBounds(new Rectangle(80, 47, 139, 73)); 
             jButtonOeffne.addActionListener(new java.awt.event.ActionListener() { 
                public void actionPerformed(java.awt.event.ActionEvent e) { 
                   oeffneFileChooser(); 
                   ausfuehrenFileChooser(); 
                } 
             }); 
          } 
          return jButtonOeffne; 
       } 
     
       protected void ausfuehrenFileChooser() { 
          int state = fileChooser.showOpenDialog(null); 
     
          if (state == JFileChooser.APPROVE_OPTION) { 
              
             String pfad = fileChooser.getSelectedFile().getAbsolutePath(); 
             System.out.println(pfad); 
              
     
              
          } else { 
             System.out.println("Auswahl abgebrochen"); 
     
          } 
           
       } 
     
       private void oeffneFileChooser() { 
          fileChooser = new JFileChooser(System.getProperty("user.dir")); 
          fileChooser.showDialog(FileChooserExample.this, null); 
          fileChooser.setAcceptAllFileFilterUsed(false); 
          fileChooser.setFileFilter(new FileFilter() { 
             public boolean accept(File f) { 
                return f.isDirectory() 
                      || f.getName().toLowerCase().endsWith(".txt"); 
             } 
     
             public String getDescription() { 
                return "Texte"; 
             } 
          }); 
       } 
       public static void main(String[] args) { 
          FileChooserExample fce = new FileChooserExample(); 
          fce.setVisible(true); 
           
       } 
     
    }

    Wär klasse, wenn mir jemand weiterhelfen könnte.

    Vielen Dank und Grüße
    smartin123
     

  2. #2
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    sorry, meine Glaskugel ist leider zur Reparatur .......

    Was genau funktioniert denn nicht?
    An welcher Stelle in den Sourcen?
    Bekommst Du eine Fehlermeldung? Wenn ja, welche?

    Ohne Infos wird Dir hier niemand helfen (können)!

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  3. #3
    smartin123 smartin123 ist offline Mitglied Silber
    Registriert seit
    Mar 2007
    Beiträge
    65
    Hi Klaus,

    sorry, war noch net so ganz fit, hab ich total vergessen

    Wenn ich den Java-Quellcode ausführe und den Button anklicke,
    dann öffnet sich der File-Chooser, das passt noch.

    Dann wähle ich eine txt-Datei aus, und klicke auf den öffnen-button.
    Leider ist es erforderlich, 2 mal auf den öffnen-button zu klicken,
    damit der pfad in die console ausgegeben wird.

    (Ebenso bei dem Abbrechen button, wird erst nach dem 2ten anklicken
    der file-chooser geschlossen)

    Warum ich das über diesen Weg mache, ist, dass ich anfangs probleme hatte,
    mit den 2 Buttons. Sprich, wenn der Abbrechen button geklickt wird, dann
    wurde, eine exception geschmissen, deshalb hab ich versucht, dass über
    den status abzufangen. Ich gebe mir den Status des file-chooser in der methode ausfuehrenFileChooser zurück und in Abhängigkeit dessen, werden weitere Methoden ausgeführt:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    if (state == JFileChooser.APPROVE_OPTION) { 
              
             String pfad = fileChooser.getSelectedFile().getAbsolutePath(); 
             System.out.println(pfad); 
              
     
              
          } else { 
             System.out.println("Auswahl abgebrochen"); 
     
          }

    Also ich versuche eine Lösung zu finden, damit öffnen und abbrechen button
    des file-chooser nur 1 mal betätigt werden muss.

    dankeschön
    Geändert von smartin123 (14.01.09 um 10:38 Uhr)
     

  4. #4
    Registriert seit
    Aug 2008
    Beiträge
    157
    Dann ruf nicht zweimal den ShowDialog auf
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    
       private void oeffneFileChooser() { 
          fileChooser = new JFileChooser(System.getProperty("user.dir")); 
          fileChooser.showDialog(FileChooserExample.this, null);    < ----- WARUM ?
          fileChooser.setAcceptAllFileFilterUsed(false); 
          fileChooser.setFileFilter(new FileFilter() { 
             public boolean accept(File f) { 
                return f.isDirectory() 
                      || f.getName().toLowerCase().endsWith(".txt"); 
             } 
     
             public String getDescription() { 
                return "Texte"; 
             } 
          }); 
       } 
     
       protected void ausfuehrenFileChooser() { 
          int state = fileChooser.showOpenDialog(null); <--- WARUM ?
     
          if (state == JFileChooser.APPROVE_OPTION) { 
              
             String pfad = fileChooser.getSelectedFile().getAbsolutePath(); 
             System.out.println(pfad); 
              
     
              
          } else { 
             System.out.println("Auswahl abgebrochen"); 
     
          } 
           
       }


    mach den showDialog aufruf aus der ausführmethode raus
    mfg
     

  5. #5
    smartin123 smartin123 ist offline Mitglied Silber
    Registriert seit
    Mar 2007
    Beiträge
    65
    Hallo Leroux,

    das war der Schlüssel zum Erfolg. Super Tipp

    vielen dank + gruß
    samrtin123
     

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 29.06.10, 21:44
  2. Mit erstem Mausklick auswählen, mit zweitem öffnen
    Von DasBöse im Forum .NET Windows Forms
    Antworten: 7
    Letzter Beitrag: 16.11.07, 11:46
  3. Color Chooser
    Von morphi79 im Forum Java
    Antworten: 5
    Letzter Beitrag: 14.09.05, 12:10
  4. URL aus JTable per Mausklick öffnen
    Von NoGi im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 26.12.03, 17:44
  5. Directory - Chooser
    Von DanMcFly im Forum Delphi, Kylix, Pascal
    Antworten: 4
    Letzter Beitrag: 17.07.03, 20:48