JDialog während automatischer Dateisuche einblenden

Status
Nicht offen für weitere Antworten.

seekingone

Mitglied
Hi, Ich habe mir einen JFileChooser gebastelt mit dem man den Pfad(mindestens das Laufwerk muss gegeben sein) zu einer Datei öffnen kann. Die Methode sucht dann die entsprechende Datei (immer die selbe). Dies kann mitunter schon ein wenig Dauern.
Jetzt hätte ich gerne so lange einen Dialog mit "Bitte Warten". Weis aber nicht wie ich den wieder zubekommen soll, wenn er einmal läuft.

Code:
final JFileChooser fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int returnVal = fc.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
    File file = fc.getSelectedFile();
    SearchPath = file.getAbsolutePath();
    ArrayList afile = searchFile(new java.io.File(SearchPath), "mysql.exe"); //es wird immer mysql.exe gesucht
    // hier müsste es hin
            if(afile.isEmpty()){
                JOptionPane.showMessageDialog(jButtonMySqlExe, "Die Datei MySQL.exe,\n" +
                "konnte nicht gefunden werden",
                "Information", JOptionPane.INFORMATION_MESSAGE);
                jTextArea1.append("MySQL.exe konnte nicht gefunden werden." + "\n");
            }else{
                MySQLexePath = afile.get(0).toString();
                jTextFieldMySqlExe.setText(MySQLexePath);
                jTextArea1.append("Pfad: " + MySQLexePath + "." + "\n");
            }
            
} else {
   jTextArea1.append("Such nach MySQL.exe abgebrochen." + "\n");
   }
 

seekingone

Mitglied
Wildcard hat gesagt.:
http://www.java-forum.org/de/viewtopic.php?t=8101

In dem Beispiel gibt es eine Klasse Algorithmus, ohne einen Hinweis wo denn nun der Algorithmus in dieser Klasse zu plazieren ist. Die Methode zur Dateisuche muss ich doch auch in die run() Methode schreiben?

Entschuldigt dass ich soviel nachfrage, aber eigentlich sollte ich schon mit dem Projekt fertig sein und mir ist erst gestern aufgefallen dass ich besser etwas während der Dateisuche einblende...
 

kowa

Aktives Mitglied
Wenn es schnell gehen soll reicht doch auch ein ganz normaler JDialog, den du dann mit dispose() wieder schließt, wenn die Suche beendet ist.
 

seekingone

Mitglied
kowa hat gesagt.:
Wenn es schnell gehen soll reicht doch auch ein ganz normaler JDialog, den du dann mit dispose() wieder schließt, wenn die Suche beendet ist.

ja den würde ich ja gerne nehmen wenn du mir zeigts wie ich die suche laufen lasse und der dialog trotzdem da ist :)

Ich dachte ja auch ich könnte es so machen
Code:
ArrayList afile;
while (afile.isEmpty(){
afile = searchFile(new java.io.File(SearchPath), "mysql.exe");
//zeige jDialog
}
aber das klappt von der logik schonmal nicht, denn dann hätte ich ewig einen jDialog wenn die Datei nicht gefunden wird...

Die Methode zur Dateisuche habe ich von hier
http://www.java-forum.org/de/viewtopic.php?t=35290
 

kowa

Aktives Mitglied
Ich habe einfach mal den Code zur Dateisuche aus deinem Link kopiert und einen JDialog eingebaut. So funktioniert es bei mir:

Code:
import java.io.File;
import java.util.ArrayList;

import javax.swing.JDialog;
import javax.swing.JLabel;

public class test {

	static JDialog d = d = new JDialog();
	static JLabel l = new JLabel("Bitte warten!");
	
	
	public static void main(String[] args) {
		
		String	searchPath = "C:/";
		
		showDialog(true);  //hier wird der Warte-Dialog geöffnet
		System.out.println(searchFile (new File(searchPath), "mysql.exe"));    //hier lasse ich nach der Datei suchen
		showDialog(false); //hier wieder geschlossen
	}
	
	
	public static ArrayList<File> searchFile(File dir, String find) {
		
		   File[] files = dir.listFiles();
		   ArrayList<File> matches = new ArrayList<File> ();
		   if (files != null) {
		      for (int i = 0; i < files.length; i++) {
		    	  
		    	  
		         if (files[i].getName().equalsIgnoreCase(find)) { 
		                            
		            matches.add(files[i]);
		         }
		         if (files[i].isDirectory()) {
		            matches.addAll(searchFile(files[i], find));
		                    
		         }
		         
		      }
		      
		   }
		   return matches;
		 
		}
	
	public static void showDialog(boolean show)
	{
		
		
		if(show == true) 
		{
			
			d.add(l);
			d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
			d.setSize(100,100);
			
			d.setVisible(true);
		} else {
			d.dispose();
		}
	}

}

Wenn nichts gefunden wird, gibt das Programm einfach "[]" aus und beendet, da müsste man noch was einbauen. Man könnte im JDialog auch einbauen, dass angezeigt wird, welche Datei gerade in der Schleife verglichen wird. Oder du baust irgendwie eine JProgressBar ein, in der 100% die Anzahl der zu Durchsuchenden Dateien ist und relativ dazu wird die durchsuchte Menge angezeigt in %. Oder beides.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Jdialog nur 1x anzeigen Java Basics - Anfänger-Themen 2
D JButton in JDialog mit Action belgen Java Basics - Anfänger-Themen 6
J JDialog Zugriff auf parent JDialog Java Basics - Anfänger-Themen 5
J JDialog: wie kann ich ihn direkt als invisible erstellen Java Basics - Anfänger-Themen 7
A JDialog öffnet sich nicht Java Basics - Anfänger-Themen 7
D JDialog schließen Java Basics - Anfänger-Themen 11
I Veränderungen am JPanel vom JDialog aus Java Basics - Anfänger-Themen 6
H JDialog Problem Java Basics - Anfänger-Themen 10
H Problem JDialog.setVisible Java Basics - Anfänger-Themen 3
T Modales JDialog schliessen mit JButton Java Basics - Anfänger-Themen 2
I JDialog Problem Java Basics - Anfänger-Themen 37
J Icon JDialog mit Java 1.4 Java Basics - Anfänger-Themen 2
M JDialog Modality Java Basics - Anfänger-Themen 7
S JDialog resize zur Laufzeit PROBLEM!!! Java Basics - Anfänger-Themen 5
S JDialog und SwingUtilities Java Basics - Anfänger-Themen 6
H Modalen JDialog schließen, ohne dabei das Parent-Frame zu schließen Java Basics - Anfänger-Themen 7
M JDialog soll was an die AufruferKlasse zurück geben Java Basics - Anfänger-Themen 3
S Layout JDialog Java Basics - Anfänger-Themen 9
S eigene Methoden in JDialog Java Basics - Anfänger-Themen 13
pun Im JDialog auf Objekt im Parent JFrame zugreifen Java Basics - Anfänger-Themen 2
C Frame, JFrame, JDialog Java Basics - Anfänger-Themen 12
S Datenzugriff auf JDialog! Java Basics - Anfänger-Themen 8
A JDialog, Owner JFrame ZIEL: nciht in der taskbar Java Basics - Anfänger-Themen 9
E Übergabe von werten aus einem JDialog Java Basics - Anfänger-Themen 4
B Grafiken/Bilder mit Netbeans in Jdialog Java Basics - Anfänger-Themen 7
O Beim Schließen JDialog, im Frame-Owner eine Methode starten Java Basics - Anfänger-Themen 6
G JDialog + p aintComponent-Override Java Basics - Anfänger-Themen 3
A Klasse erbot von JDialog. Kontruktor? Java Basics - Anfänger-Themen 4
M Hauptfenster nicht wählbar bei offenem JDialog Java Basics - Anfänger-Themen 2
G Bei JDialog warten Java Basics - Anfänger-Themen 5
B Fenstergröße variiert bei JDialog.pack()-Aufruf Java Basics - Anfänger-Themen 10
J JDialog zeigt nichts an Java Basics - Anfänger-Themen 4
C JDialog Werte nach Frame übergeben Java Basics - Anfänger-Themen 10
G JDialog + setOpaque Java Basics - Anfänger-Themen 5
G JDialog auf Jpanel statt Frame? Java Basics - Anfänger-Themen 4
N Werte von JDialog entgegennehmen Java Basics - Anfänger-Themen 7
G JDialog-Status im Frame abfragen Java Basics - Anfänger-Themen 2
Bernasconi dynamisches JDialog Java Basics - Anfänger-Themen 2
T Register im JDialog Java Basics - Anfänger-Themen 9
G JDialog übers X schliessen und Programm beenden Java Basics - Anfänger-Themen 4
C Fehlermeldungen umleiten auf JDialog Java Basics - Anfänger-Themen 2
S new .() extends JDialog {.} Java Basics - Anfänger-Themen 15
M Button in einem JDialog mit Enter ausführen Java Basics - Anfänger-Themen 2
C FocusLost reagiert nicht bei JDialog Java Basics - Anfänger-Themen 5
E Von einem JDialog einen neuen JDialog aufrufen Java Basics - Anfänger-Themen 10
R JDialog schließen ( nicht mit dispose()! ) Java Basics - Anfänger-Themen 14
G JDialog Java Basics - Anfänger-Themen 15
M JDialog Java Basics - Anfänger-Themen 3
M JDialog basierend auf JDialog aufrufen Java Basics - Anfänger-Themen 4
B KeyListener beim JDialog Java Basics - Anfänger-Themen 4
E JDialog schließen Java Basics - Anfänger-Themen 9
S JDialog Frage Java Basics - Anfänger-Themen 2
G Wiedermal vererbung, extends JDialog extends Exception ? Java Basics - Anfänger-Themen 8
P JDialog funktioniert nicht? Java Basics - Anfänger-Themen 9
P JDialog & JProgressBar Java Basics - Anfänger-Themen 2
F JDialog per Button-Klick schliessen Java Basics - Anfänger-Themen 2
S JDialog einrichten Java Basics - Anfänger-Themen 4
G Owner von JDialog;Komme einfach nicht weiter Java Basics - Anfänger-Themen 4
G einfaches jdialog beispiel Java Basics - Anfänger-Themen 1
J Default Button bei jDialog Java Basics - Anfänger-Themen 2
M JDialog mit TextArea Java Basics - Anfänger-Themen 2
K JDialog aus einer anderen klasse einfügen Java Basics - Anfänger-Themen 2
S Auf JDialog aus anderer Datei zugreifen Java Basics - Anfänger-Themen 5
schemil053 Multithread - Input verrutscht während etwas ausgegeben wird Java Basics - Anfänger-Themen 6
DorFey Schrittweises abändern des GUI während for-Schleife / pausieren einer for-Schleife Java Basics - Anfänger-Themen 3
A Haben KNNs ein Gedächtnis, lernen etwas oder verändern sich, während sie nicht trainieren, aber aktiv sind? Java Basics - Anfänger-Themen 3
S NullPointerException während ResultSet Java Basics - Anfänger-Themen 7
CptK Klassen mouseClicked wird nicht aufgerufen, während man die Maus bewegt Java Basics - Anfänger-Themen 4
U Ausgabe von Dateiinhalt während Programmnutzung fehlerhaft Java Basics - Anfänger-Themen 3
J Threads PrograssBar update während thread Java Basics - Anfänger-Themen 13
C Instanz einer Klasse während if-Abfrage erzeugen und bei zweiter if-Abfrage wiederverwenden Java Basics - Anfänger-Themen 6
R Einfaches refresh während runtime Java Basics - Anfänger-Themen 4
W Klassen [GELÖST] Objekte während der Laufzeit mit neuen veränderten Werten beliebig oft initialisieren Java Basics - Anfänger-Themen 2
E Gui updaten während langer Methode Java Basics - Anfänger-Themen 2
O JList aktualisieren während Dateieinlesung Java Basics - Anfänger-Themen 4
C Datei speichern während sie geöffnet ist Java Basics - Anfänger-Themen 4
llabusch Interface Layout eines Labels während der Laufzeit ändern Java Basics - Anfänger-Themen 0
R Variablen Datentyp erst während Laufzeit festlegen Java Basics - Anfänger-Themen 6
O Starte Timer, während anderer Timer noch läuft. Ruft dies Schwierigkeiten hervor? Java Basics - Anfänger-Themen 0
M Löschen von Objekten während Iteration über Liste Java Basics - Anfänger-Themen 9
J Ladebalken anzeigen während Bilder geladen werden Java Basics - Anfänger-Themen 2
C repaint wird nicht während Druck auf Maustaste ausgeführt. Java Basics - Anfänger-Themen 4
E Input/Output Inputstream während der Laufzeit füllen Java Basics - Anfänger-Themen 2
B Threads Interrupt während Socket.read()? Java Basics - Anfänger-Themen 3
M Während event einen anderen event ausführen?? Java Basics - Anfänger-Themen 3
C Referenz einer bereits instanziierten Klasse während des Programmablaufs Java Basics - Anfänger-Themen 16
B Klassen Objekte während der Laufzeit dynamisch anlegen Java Basics - Anfänger-Themen 8
Nic.o Panel während Ladevorgang einblenden Java Basics - Anfänger-Themen 12
alderwaran objekthierarchie darstellen während der laufzeit Java Basics - Anfänger-Themen 2
M Timer: period während Verlauf wechseln Java Basics - Anfänger-Themen 12
M args[] während des Programmlaufes eingeben Java Basics - Anfänger-Themen 5
A Exception Verständnisfrage: Exceptions während, einer Statischenzuweisung abfangen Java Basics - Anfänger-Themen 10
B Collection während Iteration verändern Java Basics - Anfänger-Themen 7
B Während Schleife nicht auf Eingabe warten Java Basics - Anfänger-Themen 2
G JProgressBar während dem ausführen einer Funktion Java Basics - Anfänger-Themen 3
A Objekte während der Laufzeit erstellen Java Basics - Anfänger-Themen 3
C Textgröße während des Programmlaufes anpassen Java Basics - Anfänger-Themen 6
A Text einer JComboBox während der Laufzeit ändern ? Java Basics - Anfänger-Themen 4
S Boolean während while-schleife verändern? Java Basics - Anfänger-Themen 6
M Java Heap Space während der Laufzeit ändern Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben