X
Xyz1
Gast
Hallo,
ich muss mir ein bisschen FX aneignen....
Also dachte ich als erste Gehversuche, erstelle ich mal eine einfach FX-Application mit einem TextField und einer ListView, in die sortiert alle Wörter eingetragen werden...
Code:
Aber besonders das split(), sort() und refresh() bereiten mir Bauchschmerzen. Das Arrays.asList() stammt ja noch aus Dinosaurierzeiten... Lässt sich das nicht irgendwie sehr geschickt einzeilig unter Beibehaltung der Semantik mit Streams und Lambdas umgehen? Welche Pitfalls habe ich noch übersehen?
Danke für Eure Verbesserungsvorschläge schonmal!
ich muss mir ein bisschen FX aneignen....
Also dachte ich als erste Gehversuche, erstelle ich mal eine einfach FX-Application mit einem TextField und einer ListView, in die sortiert alle Wörter eingetragen werden...
Code:
Java:
package application;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.ListView;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
TextField f = new TextField();
ListView<String> v = new ListView<String>();
f.textProperty().addListener((observable, oldValue, newValue) -> {
List<String> list = new ArrayList<String>(Arrays.asList(newValue.split("\\s+")));
Collections.sort(list, Comparator.naturalOrder());
v.setItems(FXCollections.observableArrayList(list));
v.refresh();
});
VBox vb = new VBox();
vb.getChildren().addAll(f, v);
BorderPane root = new BorderPane();
root.setCenter(vb);
Scene scene = new Scene(root, 400, 400);
// scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
Aber besonders das split(), sort() und refresh() bereiten mir Bauchschmerzen. Das Arrays.asList() stammt ja noch aus Dinosaurierzeiten... Lässt sich das nicht irgendwie sehr geschickt einzeilig unter Beibehaltung der Semantik mit Streams und Lambdas umgehen? Welche Pitfalls habe ich noch übersehen?
Danke für Eure Verbesserungsvorschläge schonmal!