Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package application;
- import javafx.application.Application;
- import javafx.beans.property.BooleanProperty;
- import javafx.beans.property.SimpleBooleanProperty;
- import javafx.beans.property.SimpleStringProperty;
- import javafx.beans.property.StringProperty;
- import javafx.collections.FXCollections;
- import javafx.collections.ObservableList;
- import javafx.scene.Scene;
- import javafx.scene.control.TableCell;
- import javafx.scene.control.TableColumn;
- import javafx.scene.control.TableView;
- import javafx.scene.control.cell.PropertyValueFactory;
- import javafx.scene.layout.VBox;
- import javafx.stage.Stage;
- import javafx.util.Callback;
- public class Main extends Application {
- @Override
- public void start(Stage primaryStage) {
- try {
- VBox root = new VBox();
- ObservableList<Person> data = FXCollections.observableArrayList(
- new Person("Jakob", "Schaal", "jakob.schaal@hotmail.com", true),
- new Person("Peter", "Müller", "p.m@hotmail.com", true),
- new Person("Luke", "Skywalker", "Luke.Skywalker@disney.com", false)
- );
- TableView<Person> table = new TableView<>();
- table.setItems(data);
- TableColumn<Person, String> vornamen = new TableColumn<>("Vorname");
- vornamen.setCellValueFactory(new PropertyValueFactory<Person, String>("vorname"));
- TableColumn<Person, String> nachnamen = new TableColumn<>("Nachname");
- nachnamen.setCellValueFactory(new PropertyValueFactory<Person, String>("nachname"));
- TableColumn<Person, String> emails = new TableColumn<>("E-Mail");
- emails.setCellValueFactory(new PropertyValueFactory<Person, String>("email"));
- TableColumn<Person, Boolean> teilname = new TableColumn<>("Teilname");
- teilname.setCellValueFactory(new PropertyValueFactory<Person, Boolean>("teilname"));
- teilname.setCellFactory(new Callback<TableColumn<Person,Boolean>, TableCell<Person,Boolean>>() {
- @Override
- public TableCell<Person, Boolean> call(
- TableColumn<Person, Boolean> param) {
- return new TeilnameCell();
- }
- });
- table.getColumns().add(vornamen);
- table.getColumns().add(nachnamen);
- table.getColumns().add(emails);
- table.getColumns().add(teilname);
- root.getChildren().add(table);
- Scene scene = new Scene(root, 550, 400);
- primaryStage.setTitle("Blend Mode");
- primaryStage.setScene(scene);
- primaryStage.show();
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- launch(args);
- }
- private class TeilnameCell extends TableCell<Person, Boolean>{
- @Override
- protected void updateItem(Boolean item, boolean empty) {
- super.updateItem(item, empty);
- if(item != null && empty == false){
- if(item){
- setText("Kursteilnehmer");
- }else{
- setText("Nicht eingeschrieben");
- }
- }
- }
- }
- public class Person{
- private StringProperty vorname;
- private StringProperty nachname;
- private StringProperty email;
- private BooleanProperty teilname;
- public Person(String vorname, String nachname, String email, boolean teilname){
- this.vorname = new SimpleStringProperty(vorname);
- this.nachname = new SimpleStringProperty(nachname);
- this.email = new SimpleStringProperty(email);
- this.teilname = new SimpleBooleanProperty(teilname);
- }
- public String getVorname(){
- return vorname.get();
- }
- public String getNachname(){
- return nachname.get();
- }
- public String getEmail(){
- return email.get();
- }
- public Boolean getTeilname(){
- return teilname.get();
- }
- public void setVorname(String vorname){
- this.vorname.set(vorname);
- }
- public void setNachname(String nachname){
- this.nachname.set(nachname);
- }
- public void setEmail(String email){
- this.email.set(email);
- }
- public void setTeilname(Boolean teilname){
- this.teilname.set(teilname);
- }
- public StringProperty vornameProperty(){
- return vorname;
- }
- public StringProperty nachnameProperty(){
- return nachname;
- }
- public StringProperty emailProperty(){
- return email;
- }
- public BooleanProperty teilnameProperty(){
- return teilname;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement