File-Chooser Problem (2 X Mausklick öffnen)

Status
Nicht offen für weitere Antworten.

ManInBlack

Aktives Mitglied
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:
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
ManInBlack
 

Verjigorm

Top Contributor
bei oeffneFileChooser machst du
fileChooser.showDialog(FileChooserExample.this, null);

und bei ausfuehrenFileChooser() nochmal
int state = fileChooser.showOpenDialog(null);

öffnet jeweils einen Dialog

Deine methode oeffneFileChooser() sollte (ohne showDialog(..)
vermutlich eher in den Konstruktor, als es bei jedem buttonClick aufzurufen
 
S

SlaterB

Gast
Wär klasse, wenn auch schreiben würdest, was der Fehler ist,
'2x Mausklick öffnen', ist nicht ganz so deutlich..

kommentiere Zeile 90 aus, die brauchst du nicht, Zeile 72 macht das schon
 

ManInBlack

Aktives Mitglied
Danke euch beiden,

sry, hab ganz vergessen, zu beschreiben, was der Fehler ist. :)

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:
if (state == JFileChooser.APPROVE_OPTION) {
			
			String pfad = fileChooser.getSelectedFile().getAbsolutePath();
			System.out.println(pfad);
			

			
		} else {
			System.out.println("Auswahl abgebrochen");

		}


Wenn ich Zeile 90: fileChooser.showDialog(FileChooserExample.this, null);
weg lasse öffnet sich der FileChooser nicht mehr.

Wäre nochmal super, wenn ihr mir helfen könnt. Habt ihr vielleicht noch Alternativen
um das zu lösen? Der file-chooser wird per Button geöffnet.

big gruß
 
S

SlaterB

Gast
du kannst auch quasi Zeile 90 in 72 schreiben:
int state = fileChooser.showDialog(FileChooserExample.this, null);

allerdings macht das ganze alles keinen Sinn,
du beschreibst Fehler, die bei anderen mit gleichen Code nicht auftreten,
insofern kann dir niemand helfen außer ein Experte vor Ort
 

Verjigorm

Top Contributor
Mach einfach, was ich geschrieben habe, dann gehts doch ^^

Code:
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();
      oeffneFileChooser();
      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) {
               ausfuehrenFileChooser();
            }
         });
      }
      return jButtonOeffne;
   }

   protected void ausfuehrenFileChooser() {
      int state = fileChooser.showOpenDialog(this);

      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);
      
   }

}
 

ManInBlack

Aktives Mitglied
Wie würdest denn du das auf die Schnelle lösen?

Also, entsprechend meinem Quellcode, nur ohne 2 maligen anklicken des Buttons "öffnen"

Bei mir ist es so:
1) filechooser öffnen
2) auswählen der Text-Datei (im File-chooser)
3) öffnen klicken
4) nochmal öffnen klicken
5) Der Pfad der Datei wird auf der Konsole ausgegeben


Ziel ist, den schritt Nr. 4 zu beseitigen.

Hab versucht per tutorial, das zu lösen, aber ich bekomms nicht.
(http://java.sun.com/docs/books/tutorial/uiswing/components/filechooser.html)

grüße
 

ManInBlack

Aktives Mitglied
Also, entsprechend meinem Quellcode, nur ohne 2 maligen anklicken des Buttons "öffnen"

Bei mir ist es so:
1) filechooser öffnen
2) auswählen der Text-Datei (im File-chooser)
3) öffnen klicken
4) nochmal öffnen klicken
5) Der Pfad der Datei wird auf der Konsole ausgegeben


Ziel ist, den schritt Nr. 4 zu beseitigen.

Hab versucht per tutorial, eine Lösung zu finden, aber ich bekomms nicht hin.
(http://java.sun.com/docs/books/tutorial/uiswing/components/filechooser.html)

grüße
 

ManInBlack

Aktives Mitglied
HI Verjigorm,

heute ist einfach nicht mein tag, hab nicht gemerkt, dass du was geschrieben hast.

Ich verneige mich vor dir, du bist der größte.
Hat super funktionert und entlich ist mein Problem vom Tisch :D


Noch einen schönen Tag
und nochmal vielen Dank

vg
ManInBlack
 

Verjigorm

Top Contributor
ManInBlack hat gesagt.:
Ich verneige mich vor dir, du bist der größte.
Hat super funktionert und entlich ist mein Problem vom Tisch :D

Versuche lieber zu verstehen, wieso es funktioniert, dass hilft mir/uns mehr als irgendwelches Lob ;)
 

ManInBlack

Aktives Mitglied
Jetzt hab ichs verstanden. Mein Problem ist immer, das draufkommen.
Danach wenn man die Lösung sieht, sagt man sich, da hätte man auch
selber drauf kommen können.
Aber hilft nichts, da muss ich einfach noch ein "bißchen" üben :)

ciao
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F File Chooser - nur PDFs AWT, Swing, JavaFX & SWT 2
J ganz dringend File Chooser: extensions! AWT, Swing, JavaFX & SWT 6
izoards JTable in CSV File schreiben... AWT, Swing, JavaFX & SWT 23
Ø Ein FXML-File mehrfach einfügen AWT, Swing, JavaFX & SWT 6
MiMa File Dateien im ListView als Name anzeigen? AWT, Swing, JavaFX & SWT 6
Rubberduck JavaFX Runnable jar file doesn't work AWT, Swing, JavaFX & SWT 2
F Output Stream / File Dateien / Speichern AWT, Swing, JavaFX & SWT 13
R FXML File kann nicht hinzugefügt werden! AWT, Swing, JavaFX & SWT 2
S JavaFX Variablen in einem FXML File verwenden AWT, Swing, JavaFX & SWT 8
B JavaFx TreeView mit file system AWT, Swing, JavaFX & SWT 1
J File Sucher AWT, Swing, JavaFX & SWT 4
L JavaFX TreeView mit File Objects AWT, Swing, JavaFX & SWT 0
D Swing JTable mit Inhalt aus XML-File AWT, Swing, JavaFX & SWT 3
Z JAVAFX Stage über Controller weitergeben um css-file zu laden AWT, Swing, JavaFX & SWT 4
M JFX8 Mixed 2D and 3D, Scene Subscene incorrect drawing 3ds-file AWT, Swing, JavaFX & SWT 6
R JavaFX Stage.close() funktioniert nicht im jar-File AWT, Swing, JavaFX & SWT 2
B JAXB , Unmarshal XML File AWT, Swing, JavaFX & SWT 3
T FileFilter: class File wird nicht gefunden AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Desktop.open(file) hängt AWT, Swing, JavaFX & SWT 4
J SWT jar-File relativ groß AWT, Swing, JavaFX & SWT 5
M JFreeChart in ein File schreiben (bzw. JFrame in ein File Schreiben) AWT, Swing, JavaFX & SWT 2
GUI-Programmer InputStream zu File kopieren - JPrograssbar anzeigen AWT, Swing, JavaFX & SWT 10
C File-Objekte an JList übergeben und abrufen AWT, Swing, JavaFX & SWT 6
Z Component für File-Browser ähnliche Oberfläche AWT, Swing, JavaFX & SWT 6
T SWT Window Builder Pro File Dialog anzeigen AWT, Swing, JavaFX & SWT 10
Z Swing Mittels GUI Werte aus Property-File ändern AWT, Swing, JavaFX & SWT 5
S JTree aus List<File> erstellen AWT, Swing, JavaFX & SWT 8
L Filechooser File Öffnen AWT, Swing, JavaFX & SWT 4
I Swing JTree aus ArrayList<File> erzeugen AWT, Swing, JavaFX & SWT 15
E Swing File lesen und in JEditorpane AWT, Swing, JavaFX & SWT 2
N File.setlastmodified() AWT, Swing, JavaFX & SWT 5
J Progressbar aktualisierung nach file übergabe AWT, Swing, JavaFX & SWT 7
T Dynamic JTree: File System Problem AWT, Swing, JavaFX & SWT 2
freakysheep mit jtree config file erzeugen AWT, Swing, JavaFX & SWT 2
N JFilechooser File auslesen AWT, Swing, JavaFX & SWT 10
R Jar File AWT, Swing, JavaFX & SWT 2
M File.listFiles() mit dem FileFilter von JFileChooser? AWT, Swing, JavaFX & SWT 14
I Dateiendung aus File AWT, Swing, JavaFX & SWT 9
A Probleme mit einer JOptionPane in einem jar-File AWT, Swing, JavaFX & SWT 14
G avi-Datei mit Desktop.getDesktop().open(File) öffnen AWT, Swing, JavaFX & SWT 4
DeeDee0815 JEditorPane + HTML + <img src=file> + JAR = FALSE AWT, Swing, JavaFX & SWT 3
E GUI-Elemente aus txt- oder xml-File erstellen? AWT, Swing, JavaFX & SWT 5
C File Explorer simulieren AWT, Swing, JavaFX & SWT 6
B Problem mit ImageIcons in einem Jar-File AWT, Swing, JavaFX & SWT 7
M Windows file icons in Java verwenden AWT, Swing, JavaFX & SWT 2
N JFileChooser => Exc. in thread "Basic L&F File L AWT, Swing, JavaFX & SWT 11
P SkinLF aus jar-File AWT, Swing, JavaFX & SWT 5
C getIcon für ein File das es nicht gibt? AWT, Swing, JavaFX & SWT 2
U externes .jar file einbinden [jdic] AWT, Swing, JavaFX & SWT 16
Z jar-File mit SWT - Exception AWT, Swing, JavaFX & SWT 4
M Ausführbares Jar File AWT, Swing, JavaFX & SWT 12
N File von HDD in JEditorPane laden? AWT, Swing, JavaFX & SWT 2
V SWT Programm als jar-File starten AWT, Swing, JavaFX & SWT 5
P XML-File in Java-App darstellen - wie im Internet Explorer AWT, Swing, JavaFX & SWT 2
D File verschieben. In java möglich? AWT, Swing, JavaFX & SWT 3
G JFile Chooser "Buttons" wie Neuen Ordner erstellen AWT, Swing, JavaFX & SWT 3
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
H 2D-Grafik Problem mit Paint AWT, Swing, JavaFX & SWT 1
S Layout - Problem AWT, Swing, JavaFX & SWT 1
Tassos JavaFX/Problem mit der Maussteuerung in Stackpane AWT, Swing, JavaFX & SWT 7
sserio Java Fx - Problem AWT, Swing, JavaFX & SWT 3
A Problem Spiel auf Panel der GUI zu bringen AWT, Swing, JavaFX & SWT 1
A JavaFX Controller Problem AWT, Swing, JavaFX & SWT 1
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
Umb3rus JavaFX Problem mit PropertyValueFactory: can not read from unreadable property AWT, Swing, JavaFX & SWT 1
T Problem mit paintComponent() AWT, Swing, JavaFX & SWT 17
AmsananKING Java Menü-Problem AWT, Swing, JavaFX & SWT 1
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
G Instance OF Problem AWT, Swing, JavaFX & SWT 9
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
M Problem mit dem Anzeigen von Frames im Vordergrund AWT, Swing, JavaFX & SWT 5
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
newJavaGeek Grid-Layout problem AWT, Swing, JavaFX & SWT 7
J JavaFX Löschen im Tabelview macht Problem AWT, Swing, JavaFX & SWT 15
JavaTalksToMe JavaFx ExekutorService Problem AWT, Swing, JavaFX & SWT 2
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
B Problem mit JavaFX AWT, Swing, JavaFX & SWT 5
J css Problem AWT, Swing, JavaFX & SWT 5
B JavaFX habe mein Problem fett markiert AWT, Swing, JavaFX & SWT 2
A Swing Filter-Problem AWT, Swing, JavaFX & SWT 1
temi JavaFX Problem mit IntelliJ und JavaFx 11 unter XUbuntu AWT, Swing, JavaFX & SWT 3
L Java FX Problem mit Ubuntu 18 und JavaFx AWT, Swing, JavaFX & SWT 27
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
kodela Swing Problem mit Warten-Dialog AWT, Swing, JavaFX & SWT 16
B JavaFx Scene Builder Problem AWT, Swing, JavaFX & SWT 2
B [Problem] Java öffnet Word-Datein nicht AWT, Swing, JavaFX & SWT 14
T DataBinding Problem AWT, Swing, JavaFX & SWT 5
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 15
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 0
D Swing SwingUtils / Thread Problem AWT, Swing, JavaFX & SWT 3
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
T Swing Problem mit Datum und FormattedTextField AWT, Swing, JavaFX & SWT 2
S AWT Java print dialog Problem AWT, Swing, JavaFX & SWT 0
olfibits JavaFX Problem mit HTMLEditor AWT, Swing, JavaFX & SWT 0
W SWT hover-background-problem with first column in TreeViewer AWT, Swing, JavaFX & SWT 0
M Problem mit Add JScrollPane AWT, Swing, JavaFX & SWT 25
Mario1409 Swing JTextArea scroll Problem AWT, Swing, JavaFX & SWT 0

Ähnliche Java Themen

Neue Themen


Oben