phaziz.com

Startseite > 21.11.2017 Java - Tipps und Tricks

21.11.2017 Java - Tipps und Tricks

Java/JavaFX Tipps und Tricks

JavaFX-Applikation beim Start maximieren

Einfach in der Main-Class der JavaFX-Anwendung in der Funktion start folgende Anweisung hinterlegen:

stage.setMaximized(true);

Die gesamte Main-Class schaut dann wie folgt aus:

public class {MEINE-ANWENDUNG} extends Application
{
    public void start(Stage stage) throws Exception
    {
        Parent root = FXMLLoader.load(getClass().getResource("{MMEIN-FXML-DOKUMENT.fxml}"));
        Scene scene = new Scene(root);
        stage.setScene(scene);
        stage.show();
        stage.setMaximized(true);
    }

    public static void main(String[] args)
    {
        launch(args);
    }
}

Und schon startet die JavaFX-Anwendung automatisch maximiert.

Ein Mausklick-Listener für ListView's

Nehmen wir an, wir haben in eine App ein ListView-Element eingebaut - Mausklicks auf ein Element in diesem ListView wollen wir mit einer Funktion abfangen - Unser ListView-Element:

@FXML
private ListView<DVD> ListViewDVDPane;

(Bleiben wir bei unserem Beispiel mit dem Datenspeicher für persönliche Medien ;-)

@Override
public void initialize(URL url, ResourceBundle rb)
{
  ...

  ListViewDVDPane.getSelectionModel().selectedItemProperty().addListener((ObservableValue<? extends DVD> observable, DVD oldValue, DVD newValue) -> {
      if(newValue != null)
      {
        ...
      }
  });

Und das ganze als Lambda-Funktion verpackt im Controller für unser FXML-Dokument, in der Funktion für die Initialisierung. Fertig - ab sofort, wird auf Mausklicks in unserem ListView-Element gehorcht.

FTP mit Java

Möchten wir zum Beispiel eine Datei per FTP herunterladen und in unserer App verwenden... Müssen wir einen Speicherort für die Datei festlegen. Dies können wir mit einem DirectoryChooser bewerkstelligen:

DirectoryChooser chooser = new DirectoryChooser();
chooser.setInitialDirectory(new File(System.getProperty("user.home")));
chooser.setTitle("Speicherort für Datei wählen...");
File localPath = chooser.showDialog(new Stage());

Hiermit haben wir unseren localPath schon belegt und die folgende Datei kann dort gespeichert werden. Der nöchste logische Schritt, ist die Verbindung zum FTP-Server:

String host = "{SERVER}";
String user = "{BENUTZERNAME}";
String pass = "{PASSWORT}";

String filePath = "\\{DATEINAME.DATEIENDUNG}";
String ftpUrl = "ftp://" + user + ":" + pass + "@" + host + "/{DATEINAME.DATEIENDUNG};type=i";
String savePath = txtLocalPathEinstellungen.getText() + filePath;
ftpUrl = String.format(ftpUrl, user, pass, host, filePath);

try
{
    URL url = new URL(ftpUrl);
    URLConnection conn = url.openConnection();
    InputStream inputStream = conn.getInputStream();
    FileOutputStream outputStream = new FileOutputStream(savePath);

    byte[] buffer = new byte[BUFFER_SIZE];
    int bytesRead = -1;

    while((bytesRead = inputStream.read(buffer)) != -1)
    {
        outputStream.write(buffer, 0, bytesRead);
    }

    outputStream.close();
    inputStream.close();

    File dbfile = new File(txtLocalPathEinstellungen.getText() + filePath);

    if(dbfile.isFile() == true)
    {
        DatabaseFilename = (File) dbfile;
        ...
    }
    else
    {
       ...
    }
  }
  catch (IOException e)
  {
      ...
  }

Wir öffnen die FTP-Verbindung und lesen die angeforderte Datei in einen File-Stream ein und schreiben diesen in die lokale Kopie der Datei.

Suche

Suchbegriffe mit mindestens 3 Zeichen! Suchvorgang mit ENTER-Taste starten.