Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
import java.awt.DisplayMode;
import java.io.IOException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
public class MultiDateiauswahl {
Display display = new Display();
Shell shell = new Shell(display);
// the label used to display selected dir/file.
Label label;
Button buttonSelectDir;
Button buttonSelectFile;
String selectedDir;
String fileFilterPath = "i:/daten/scratch";
public MultiDateiauswahl() {
label = new Label(shell, SWT.BORDER | SWT.WRAP);
label.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
label.setText("Select a dir/file by clicking the buttons below.");
buttonSelectDir = new Button(shell, SWT.PUSH);
buttonSelectDir.setText("Ende");
buttonSelectDir.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
display.dispose();
}
});
buttonSelectFile = new Button(shell, SWT.PUSH);
buttonSelectFile.setText("Auswahl Datei(en)");
buttonSelectFile.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
FileDialog fileDialog = new FileDialog(shell, SWT.MULTI);
fileDialog.setFilterPath(fileFilterPath);
fileDialog.setFilterExtensions(new String[] { "*.*", "*.csv",
"*.txt", });
fileDialog.setFilterNames(new String[] { "Any", "csv DAtei",
"Textdatei" });
String firstFile = fileDialog.open();
if (firstFile != null) {
fileFilterPath = fileDialog.getFilterPath();
String[] selectedFiles = fileDialog.getFileNames();
StringBuffer sb = new StringBuffer(
"Selected files under dir "
+ fileDialog.getFilterPath() + ": \n");
// Ausgewählten Pfad in der Datenklasse eintragen
Datenklasse.getInstance().setPfadname(fileDialog.getFilterPath());
// Ausgewählten Pfad aus der Datenklasse anzeigen
System.out.println("Pfad: " +Datenklasse.getInstance().getPfadname());
// Übergabe aller Dateien
Datenklasse.getInstance().setDateitabelle(selectedFiles);
for (int i = 0; i < selectedFiles.length; i++)
{
sb.append(selectedFiles[i] + "\n");
// Ausgewählte Datei in der Datenklasse eintragen - wenn mehrere ausgewählt wurden gewinnt das letzte
Datenklasse.getInstance().setDateiname(selectedFiles[i]);
System.out.println("Datei: " +Datenklasse.getInstance().getDateiname());
}
label.setText(sb.toString());
}
}
});
label.setBounds(20, 25, 300, 600);
// buttonSelectDir.setBounds(0, 65, 200, 30);
// buttonSelectFile.setBounds(200, 65, 200, 30);
buttonSelectDir.setBounds(400, 80, 150, 30);
buttonSelectFile.setBounds(400, 160, 150, 30);
shell.pack();
shell.open();
//textUser.forceFocus();
// Set up the event loop.
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
// If no more entries in event queue
display.sleep();
}
}
display.dispose();
}
public static void main(String[] args) {
new MultiDateiauswahl();
}
}
Hier dazu die erforderliche Datenklasse:
//********************************************************
//Datenklasse zur Überbage der gefundenen Werte Start
//********************************************************
public class Datenklasse {
private static Datenklasse _instance;
public synchronized static Datenklasse getInstance() {
if (_instance == null) {
_instance = new Datenklasse(pfadname, dateiname, sDateitabelle);
}
return _instance;
}
// Konstruktor Datenklasse legt einen Satz der Klasse
// Datenklasse an.
public Datenklasse(String k, String b, String[] c) {
pfadname = k;
dateiname = b;
sDateitabelle = c;
}
// Methode Klassensatz neu anlegen
public void satzNeu(String k, String b, String[] c) {
pfadname = k;
dateiname = b;
sDateitabelle = c;
}
// Methode getpfadname liefert den Schlüsselwert des aktuellen
// Satzes der Klasse
public String getPfadname() {
return pfadname;
}
// Methode getdateiname liefert die Bezeichnung des aktuellen
// Satzes der Klasse
public String getDateiname() {
return dateiname;
}
public String[] getDateitabelle() {
return sDateitabelle;
}
// In der Klasse Datenklasse wird der aktuelle Wert des
// Feldes pfadname auf den an die Methode übergebenen Wert gesetzt.
public void setPfadname(String key) {
pfadname = key;
}
// Dateinamen setzten
public void setDateiname(String bez) {
dateiname = bez;
}
// Dateinamen setzten
public void setDateitabelle(String[] pDateitabelle) {
sDateitabelle = pDateitabelle;
}
// Die Klasse besteht aus diesem beiden Feldern
private static String pfadname;
private static String dateiname;
private static String sDateitabelle[];
}
Alex02 hat gesagt.:Hallo Harald,
danke für die Antwort.
Noch ne kleine Frage:
Welches Jar-File gehört zu
org.eclipse ..........
Gruß
Alex
Hallo Alex,Alex02 hat gesagt.:Hallo,
danke für Deine Hilfe.
Jetzt noch mal eine Frage. ist es möglich einen JFileChooser auf dem Server zu benutzen.
Ich bekomm immer eine Fehlermeldung, wenn ich Jframes aufrufen will!
(System: Windows)
Gruß
Alex