Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt

sserio

Bekanntes Mitglied
Sehr geehrte comunity, frage steht in dem Titel. Ich habe jetzt das grundsätzliche design fertig gemacht. Würde aber gerne meine Infromationen irgendwie in eine TableView Packen
package com.example.demo3;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.*;
import javafx.stage.Stage;

public class HelloApplication extends Application {
public static void main(String[] args) {
launch(args);
System.out.println("Application closed");
}

@Override
public void start(Stage stage) throws Exception {
stage.setTitle("Tab Intiliasation");
BorderPane root = new BorderPane();
Scene scene = new Scene(root, 340, 225);
TabPane tabPane = new TabPane();
Tab tab1 = new Tab("FirstTab");
Tab tab2 = new Tab("SecondTab");
tab1.setClosable(false);
tab2.setClosable(false);
tabPane.getTabs().addAll(tab1, tab2);
GridPane gridPane = new GridPane();
gridPane.setPadding(new Insets(15, 15, 15, 15));
gridPane.setVgap(10);
gridPane.setHgap(10);
Label vorname = new Label("Vorname");
Label nachname = new Label("Nachname");
Label von = new Label("von:");
Label bis = new Label("bis:");
TextField vornamenField = new TextField();
TextField nachnamenField = new TextField();
DatePicker datePicker1 = new DatePicker();
DatePicker datePicker2 = new DatePicker();
Button button = new Button("Beantragen");
gridPane.add(vorname, 0, 0);
gridPane.add(nachname, 0, 1);
gridPane.add(von, 0, 2);
gridPane.add(bis, 0, 3);
gridPane.add(vornamenField, 1, 0, 1, 1);
gridPane.add(nachnamenField, 1, 1, 1, 1);
gridPane.add(datePicker1, 1, 2);
gridPane.add(datePicker2, 1, 3);
gridPane.add(button, 1, 4, 1, 1);
ColumnConstraints columnConstraints = new ColumnConstraints();
columnConstraints.setHgrow(Priority.NEVER);
ColumnConstraints columnConstraints1 = new ColumnConstraints();
columnConstraints1.setHgrow(Priority.ALWAYS);
gridPane.getColumnConstraints().addAll(columnConstraints, columnConstraints1);
AnchorPane anchorPane = new AnchorPane();
AnchorPane.setTopAnchor(gridPane, 10.0);
AnchorPane.setLeftAnchor(gridPane, 10.0);
AnchorPane.setRightAnchor(gridPane, 10.0);
anchorPane.getChildren().add(gridPane);
tab1.setContent(anchorPane);
TableView tableView = new TableView();
TableColumn columnVorname = new TableColumn("Vorname");
TableColumn columnNachname = new TableColumn("Nachname");
TableColumn columnVon = new TableColumn("Von:");
TableColumn columnBis = new TableColumn("Bis:");
tableView.getColumns().addAll(columnVorname, columnNachname, columnVon, columnBis);
AnchorPane anchorPane1 = new AnchorPane();
AnchorPane.setTopAnchor(tableView, 10.0);
AnchorPane.setLeftAnchor(tableView, 10.0);
AnchorPane.setRightAnchor(tableView, 10.0);
AnchorPane.setBottomAnchor(tableView, 10.0);
anchorPane1.getChildren().add(tableView);
tab2.setContent(anchorPane1);
button.addEventHandler(ActionEvent.ACTION, new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent actionEvent) {

}
});
root.setCenter(tabPane);
stage.setScene(scene);
stage.show();
}

}
 
G

Gelöschtes Mitglied 65838

Gast
wo ist jetzt das problem ... du hast nen eventhandler.. du hast ne tableview... und 100 zielen code in einer methode

wo brennts denn
 
G

Gelöschtes Mitglied 65838

Gast
Du musst erstmal etwas bauen womit deine Table view umgehen kann

dann musst du ein objekt von dem erzeugen mit dem diene tableview umgehen kann und das fügst du ein
in dem du im eventhandler ein neues objekt erstellst und der tableview hinzufügst

 

sserio

Bekanntes Mitglied
Du musst erstmal etwas bauen womit deine Table view umgehen kann

dann musst du ein objekt von dem erzeugen mit dem diene tableview umgehen kann und das fügst du ein
in dem du im eventhandler ein neues objekt erstellst und der tableview hinzufügst

package com.example.demo3;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;

public class HelloApplication extends Application {
public static void main(String[] args) {
launch(args);
System.out.println("Application closed");
}

@Override
public void start(Stage stage) throws Exception {
stage.setTitle("Tab Intiliasation");
BorderPane root = new BorderPane();
Scene scene = new Scene(root, 340, 225);
TabPane tabPane = new TabPane();
Tab tab1 = new Tab("FirstTab");
Tab tab2 = new Tab("SecondTab");
tab1.setClosable(false);
tab2.setClosable(false);
tabPane.getTabs().addAll(tab1, tab2);
GridPane gridPane = new GridPane();
gridPane.setPadding(new Insets(15, 15, 15, 15));
gridPane.setVgap(10);
gridPane.setHgap(10);
Label vorname = new Label("Vorname");
Label nachname = new Label("Nachname");
Label von = new Label("von:");
Label bis = new Label("bis:");
TextField vornamenField = new TextField();
TextField nachnamenField = new TextField();
DatePicker datePicker1 = new DatePicker();
DatePicker datePicker2 = new DatePicker();
Button button = new Button("Beantragen");
gridPane.add(vorname, 0, 0);
gridPane.add(nachname, 0, 1);
gridPane.add(von, 0, 2);
gridPane.add(bis, 0, 3);
gridPane.add(vornamenField, 1, 0, 1, 1);
gridPane.add(nachnamenField, 1, 1, 1, 1);
gridPane.add(datePicker1, 1, 2);
gridPane.add(datePicker2, 1, 3);
gridPane.add(button, 1, 4, 1, 1);
ColumnConstraints columnConstraints = new ColumnConstraints();
columnConstraints.setHgrow(Priority.NEVER);
ColumnConstraints columnConstraints1 = new ColumnConstraints();
columnConstraints1.setHgrow(Priority.ALWAYS);
gridPane.getColumnConstraints().addAll(columnConstraints, columnConstraints1);
AnchorPane anchorPane = new AnchorPane();
AnchorPane.setTopAnchor(gridPane, 10.0);
AnchorPane.setLeftAnchor(gridPane, 10.0);
AnchorPane.setRightAnchor(gridPane, 10.0);
anchorPane.getChildren().add(gridPane);
tab1.setContent(anchorPane);
TableView<Urlaubsantag> tableView = new TableView<>();
TableColumn columnVorname = new TableColumn<Urlaubsantag, Object>("Vorname");
TableColumn columnNachname = new TableColumn("Nachname");
TableColumn columnVon = new TableColumn("Von:");
TableColumn columnBis = new TableColumn("Bis:");
tableView.getColumns().addAll(columnVorname, columnNachname, columnVon, columnBis);
AnchorPane anchorPane1 = new AnchorPane();
AnchorPane.setTopAnchor(tableView, 10.0);
AnchorPane.setLeftAnchor(tableView, 10.0);
AnchorPane.setRightAnchor(tableView, 10.0);
AnchorPane.setBottomAnchor(tableView, 10.0);
anchorPane1.getChildren().add(tableView);
tab2.setContent(anchorPane1);
button.addEventHandler(ActionEvent.ACTION, new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent actionEvent) {
Urlaubsantag urlaubsantag = new Urlaubsantag(vorname.getText(), nachname.getText(), datePicker1.getValue(), datePicker2.getValue());
tableView.getItems().add(urlaubsantag);
}
});
root.setCenter(tabPane);
stage.setScene(scene);
stage.show();
}

}
Habe es jetzt so versucht, die Werte werden dennoch nicht hinzugefügt
 

sserio

Bekanntes Mitglied
Du musst erstmal etwas bauen womit deine Table view umgehen kann

dann musst du ein objekt von dem erzeugen mit dem diene tableview umgehen kann und das fügst du ein
in dem du im eventhandler ein neues objekt erstellst und der tableview hinzufügst

schau mal bei meiner neusten antwort vorbei
 
G

Gelöschtes Mitglied 65838

Gast
mnja... du hast ja auch keine cellfactory gebaut wie im link beschrieben
 
G

Gelöschtes Mitglied 65838

Gast
ok gut.. KEINE AHNUNG was da wieder schief läuft.. war mein fehler hätte es genauer anschauen sollen also kurzer umschwenk....


ich habe meine Magie gewirkt

und selber probiert
ich fang so an
Java:
public class Launcher extends Application {
   public void start(Stage stage) {
      NamensProgramm program = new NamensProgramm();
      //Setting the scene
      Scene scene = new Scene(program.getRoot(), 595, 230);
      stage.setTitle("Table View Exmple");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}
mehr gehört auch NICHT in die start methode .... MACH KLASSEN

[CODE lang="java" title="das ist mein Objekt das in die Listview gespeichert wird"]class Zelle{
public StringProperty val = new SimpleStringProperty();
Zelle(String s ){
val.set(s);
}

}[/CODE]





Java:
class NamensProgramm{
 
  private Button addButton = new Button("name");
  private TableView<Zelle> table = new TableView<>();
  private VBox root = new VBox(addButton,table);
  private ZellenEinfueger<Zelle> einfueger = new ZellenEinfueger<>(table.getItems());
 
  NamensProgramm(){
    TableColumn<Zelle, String> nameCol = new TableColumn<>("Name");
    nameCol.setCellValueFactory(features -> features.getValue().val);
   
    table.getColumns().add(nameCol);
    addButton.onActionProperty().set(event -> einfueger.add(new Zelle("BOB")).add(new Zelle("Neuer Bob")));
  }
  VBox getRoot() {
    return root;
  }
 
}
hier wird die View zusammen gebaut und dem Button den eventhandler gegeben => der macht on action führ beim einfueger das aus und füg hinzu



[CODE lang="java" title="das bindings bidirectional musst du nicht sofort verstehen"]class ZellenEinfueger<TYP extends Zelle>{
ObservableList<TYP> list = FXCollections.observableArrayList();
ZellenEinfueger(ObservableList<TYP> list){
Bindings.bindContentBidirectional(this.list, list);
}
ZellenEinfueger<TYP> add(TYP... element){
list.addAll(element);
return this;
}
ZellenEinfueger<TYP> remove(TYP... element){
list.removeAll(element);
return this;
}
}[/CODE]
hier wird einer zweiten liste die exakt synchron mit der Liste in der Tableview ist gefüllt diese wird befüllt und damit automatisch auch die tableview liste


soooo und jetzt nochmal der ganze Code zum copy pasten... erstell ne datei Mit Launcher als name und copy paste das rein das funktioniert auch
[CODE lang="java" title="ganze programm"]/*
*
*/
package de.github.yfons.rapidfx.examples.HelloWorld;

import de.github.yfons.rapidfx.premade.UI.ContainerFactory;
import de.github.yfons.rapidfx.premade.UI.elements.BorderPaneContainer;
import de.github.yfons.rapidfx.premade.UI.elements.PaneContainer;
import javafx.application.Application;
import javafx.beans.binding.Bindings;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

/**
* The Class Launcher.
*/
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
public class Launcher extends Application {
public void start(Stage stage) {
NamensProgramm program = new NamensProgramm();
//Setting the scene
Scene scene = new Scene(program.getRoot(), 595, 230);
stage.setTitle("Table View Exmple");
stage.setScene(scene);
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
class Zelle{
public StringProperty val = new SimpleStringProperty();
Zelle(String s ){
val.set(s);
}

}
class ZellenEinfueger<TYP extends Zelle>{
ObservableList<TYP> list = FXCollections.observableArrayList();
ZellenEinfueger(ObservableList<TYP> list){
Bindings.bindContentBidirectional(this.list, list);
}
ZellenEinfueger<TYP> add(TYP... element){
list.addAll(element);
return this;
}
ZellenEinfueger<TYP> remove(TYP... element){
list.removeAll(element);
return this;
}
}
class NamensProgramm{

private Button addButton = new Button("name");
private TableView<Zelle> table = new TableView<>();
private VBox root = new VBox(addButton,table);
private ZellenEinfueger<Zelle> einfueger = new ZellenEinfueger<>(table.getItems());

NamensProgramm(){
TableColumn<Zelle, String> nameCol = new TableColumn<>("Name");
nameCol.setCellValueFactory(features -> features.getValue().val);

table.getColumns().add(nameCol);
addButton.onActionProperty().set(event -> einfueger.add(new Zelle("BOB")).add(new Zelle("Neuer Bob")));
}
VBox getRoot() {
return root;
}

}

[/CODE]

ja ich hab mich kurz gehalten... frag mich explizit nachdem was du wissen willst ... bin im moment eher so auf "ich beantworte nur das was gefragt wird ansonsten wird wieder gemerkt schiene" ... solange ihc die fragen versteh versuch ich es zu beantworten


ich weis ja incht inwiefern du generics hattest...bindings... usw ...usw
 

sserio

Bekanntes Mitglied
ok gut.. KEINE AHNUNG was da wieder schief läuft.. war mein fehler hätte es genauer anschauen sollen also kurzer umschwenk....


ich habe meine Magie gewirkt

und selber probiert
ich fang so an
Java:
public class Launcher extends Application {
   public void start(Stage stage) {
      NamensProgramm program = new NamensProgramm();
      //Setting the scene
      Scene scene = new Scene(program.getRoot(), 595, 230);
      stage.setTitle("Table View Exmple");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}
mehr gehört auch NICHT in die start methode .... MACH KLASSEN

[CODE lang="java" title="das ist mein Objekt das in die Listview gespeichert wird"]class Zelle{
public StringProperty val = new SimpleStringProperty();
Zelle(String s ){
val.set(s);
}

}[/CODE]





Java:
class NamensProgramm{
 
  private Button addButton = new Button("name");
  private TableView<Zelle> table = new TableView<>();
  private VBox root = new VBox(addButton,table);
  private ZellenEinfueger<Zelle> einfueger = new ZellenEinfueger<>(table.getItems());
 
  NamensProgramm(){
    TableColumn<Zelle, String> nameCol = new TableColumn<>("Name");
    nameCol.setCellValueFactory(features -> features.getValue().val);
  
    table.getColumns().add(nameCol);
    addButton.onActionProperty().set(event -> einfueger.add(new Zelle("BOB")).add(new Zelle("Neuer Bob")));
  }
  VBox getRoot() {
    return root;
  }
 
}
hier wird die View zusammen gebaut und dem Button den eventhandler gegeben => der macht on action führ beim einfueger das aus und füg hinzu



[CODE lang="java" title="das bindings bidirectional musst du nicht sofort verstehen"]class ZellenEinfueger<TYP extends Zelle>{
ObservableList<TYP> list = FXCollections.observableArrayList();
ZellenEinfueger(ObservableList<TYP> list){
Bindings.bindContentBidirectional(this.list, list);
}
ZellenEinfueger<TYP> add(TYP... element){
list.addAll(element);
return this;
}
ZellenEinfueger<TYP> remove(TYP... element){
list.removeAll(element);
return this;
}
}[/CODE]
hier wird einer zweiten liste die exakt synchron mit der Liste in der Tableview ist gefüllt diese wird befüllt und damit automatisch auch die tableview liste


soooo und jetzt nochmal der ganze Code zum copy pasten... erstell ne datei Mit Launcher als name und copy paste das rein das funktioniert auch
[CODE lang="java" title="ganze programm"]/*
*
*/
package de.github.yfons.rapidfx.examples.HelloWorld;

import de.github.yfons.rapidfx.premade.UI.ContainerFactory;
import de.github.yfons.rapidfx.premade.UI.elements.BorderPaneContainer;
import de.github.yfons.rapidfx.premade.UI.elements.PaneContainer;
import javafx.application.Application;
import javafx.beans.binding.Bindings;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

/**
* The Class Launcher.
*/
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
public class Launcher extends Application {
public void start(Stage stage) {
NamensProgramm program = new NamensProgramm();
//Setting the scene
Scene scene = new Scene(program.getRoot(), 595, 230);
stage.setTitle("Table View Exmple");
stage.setScene(scene);
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
class Zelle{
public StringProperty val = new SimpleStringProperty();
Zelle(String s ){
val.set(s);
}

}
class ZellenEinfueger<TYP extends Zelle>{
ObservableList<TYP> list = FXCollections.observableArrayList();
ZellenEinfueger(ObservableList<TYP> list){
Bindings.bindContentBidirectional(this.list, list);
}
ZellenEinfueger<TYP> add(TYP... element){
list.addAll(element);
return this;
}
ZellenEinfueger<TYP> remove(TYP... element){
list.removeAll(element);
return this;
}
}
class NamensProgramm{

private Button addButton = new Button("name");
private TableView<Zelle> table = new TableView<>();
private VBox root = new VBox(addButton,table);
private ZellenEinfueger<Zelle> einfueger = new ZellenEinfueger<>(table.getItems());

NamensProgramm(){
TableColumn<Zelle, String> nameCol = new TableColumn<>("Name");
nameCol.setCellValueFactory(features -> features.getValue().val);

table.getColumns().add(nameCol);
addButton.onActionProperty().set(event -> einfueger.add(new Zelle("BOB")).add(new Zelle("Neuer Bob")));
}
VBox getRoot() {
return root;
}

}

[/CODE]

ja ich hab mich kurz gehalten... frag mich explizit nachdem was du wissen willst ... bin im moment eher so auf "ich beantworte nur das was gefragt wird ansonsten wird wieder gemerkt schiene" ... solange ihc die fragen versteh versuch ich es zu beantworten


ich weis ja incht inwiefern du generics hattest...bindings... usw ...us
Das ist jetzt mein zweiter Tag mit JavaFx und das was du dort gemacht hast kommt plausibel rüber(außer das mit den Bindings). Außerdem fehlt mir glaube ich auch noch das Grundverständnis mit den ganzen Begriffen der Sdk. Generics kenne ich schon . Aber danke ich versuche mal bisschen weiter zu kommen. Wenn nicht dann wird man mal wieder nen Post von mir sehen
 
G

Gelöschtes Mitglied 65838

Gast
indem fall heißt
Bindings.bindContentBidirectional(list list)
dass der inhalt der einen liste immer genau so ausschaut wie der inhalt der anderen und umgekehrt


ich hab ein framework für javafx gebaut das nur mit bindings arbeitet alsoooooo joa bindings sind schon ne fancy sache
 
G

Gelöschtes Mitglied 65838

Gast
ein framework ist etwas das dir den umgang mit etwas leichter machen soll

EDIT
zb sowas kann mein framework
Java:
    HBox box = ContainerFactory.getBox(HBox::new)
        .add(new Button())
        .disable()
        .invisible()
        .toFront()
        .id("Bob")
        .get();
 
G

Gelöschtes Mitglied 65838

Gast
außerdem würde ich dir raten immer den deppen ansatz zu wählen... dh kein fancy drum her rum sondern den direktesten weg zu nehmen nennt man auch KISS keep it stupid simple aber deppen ansatz hat ne überzeugendere wirkung :D
 

sserio

Bekanntes Mitglied
ok gut.. KEINE AHNUNG was da wieder schief läuft.. war mein fehler hätte es genauer anschauen sollen also kurzer umschwenk....


ich habe meine Magie gewirkt

und selber probiert
ich fang so an
Java:
public class Launcher extends Application {
   public void start(Stage stage) {
      NamensProgramm program = new NamensProgramm();
      //Setting the scene
      Scene scene = new Scene(program.getRoot(), 595, 230);
      stage.setTitle("Table View Exmple");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}
mehr gehört auch NICHT in die start methode .... MACH KLASSEN

[CODE lang="java" title="das ist mein Objekt das in die Listview gespeichert wird"]class Zelle{
public StringProperty val = new SimpleStringProperty();
Zelle(String s ){
val.set(s);
}

}[/CODE]





Java:
class NamensProgramm{
 
  private Button addButton = new Button("name");
  private TableView<Zelle> table = new TableView<>();
  private VBox root = new VBox(addButton,table);
  private ZellenEinfueger<Zelle> einfueger = new ZellenEinfueger<>(table.getItems());
 
  NamensProgramm(){
    TableColumn<Zelle, String> nameCol = new TableColumn<>("Name");
    nameCol.setCellValueFactory(features -> features.getValue().val);
  
    table.getColumns().add(nameCol);
    addButton.onActionProperty().set(event -> einfueger.add(new Zelle("BOB")).add(new Zelle("Neuer Bob")));
  }
  VBox getRoot() {
    return root;
  }
 
}
hier wird die View zusammen gebaut und dem Button den eventhandler gegeben => der macht on action führ beim einfueger das aus und füg hinzu



[CODE lang="java" title="das bindings bidirectional musst du nicht sofort verstehen"]class ZellenEinfueger<TYP extends Zelle>{
ObservableList<TYP> list = FXCollections.observableArrayList();
ZellenEinfueger(ObservableList<TYP> list){
Bindings.bindContentBidirectional(this.list, list);
}
ZellenEinfueger<TYP> add(TYP... element){
list.addAll(element);
return this;
}
ZellenEinfueger<TYP> remove(TYP... element){
list.removeAll(element);
return this;
}
}[/CODE]
hier wird einer zweiten liste die exakt synchron mit der Liste in der Tableview ist gefüllt diese wird befüllt und damit automatisch auch die tableview liste


soooo und jetzt nochmal der ganze Code zum copy pasten... erstell ne datei Mit Launcher als name und copy paste das rein das funktioniert auch
[CODE lang="java" title="ganze programm"]/*
*
*/
package de.github.yfons.rapidfx.examples.HelloWorld;

import de.github.yfons.rapidfx.premade.UI.ContainerFactory;
import de.github.yfons.rapidfx.premade.UI.elements.BorderPaneContainer;
import de.github.yfons.rapidfx.premade.UI.elements.PaneContainer;
import javafx.application.Application;
import javafx.beans.binding.Bindings;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

/**
* The Class Launcher.
*/
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
public class Launcher extends Application {
public void start(Stage stage) {
NamensProgramm program = new NamensProgramm();
//Setting the scene
Scene scene = new Scene(program.getRoot(), 595, 230);
stage.setTitle("Table View Exmple");
stage.setScene(scene);
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
class Zelle{
public StringProperty val = new SimpleStringProperty();
Zelle(String s ){
val.set(s);
}

}
class ZellenEinfueger<TYP extends Zelle>{
ObservableList<TYP> list = FXCollections.observableArrayList();
ZellenEinfueger(ObservableList<TYP> list){
Bindings.bindContentBidirectional(this.list, list);
}
ZellenEinfueger<TYP> add(TYP... element){
list.addAll(element);
return this;
}
ZellenEinfueger<TYP> remove(TYP... element){
list.removeAll(element);
return this;
}
}
class NamensProgramm{

private Button addButton = new Button("name");
private TableView<Zelle> table = new TableView<>();
private VBox root = new VBox(addButton,table);
private ZellenEinfueger<Zelle> einfueger = new ZellenEinfueger<>(table.getItems());

NamensProgramm(){
TableColumn<Zelle, String> nameCol = new TableColumn<>("Name");
nameCol.setCellValueFactory(features -> features.getValue().val);

table.getColumns().add(nameCol);
addButton.onActionProperty().set(event -> einfueger.add(new Zelle("BOB")).add(new Zelle("Neuer Bob")));
}
VBox getRoot() {
return root;
}

}

[/CODE]

ja ich hab mich kurz gehalten... frag mich explizit nachdem was du wissen willst ... bin im moment eher so auf "ich beantworte nur das was gefragt wird ansonsten wird wieder gemerkt schiene" ... solange ihc die fragen versteh versuch ich es zu beantworten


ich weis ja incht inwiefern du generics hattest...bindings... usw ...usw
Wie importiert man etwas wenn diese imports garnicht in der JavaFx labrary sind. Damit meine ich die ersten 3 imports
 
G

Gelöschtes Mitglied 65838

Gast
uh die sind von mir von meinen klassen ... die kannst du weg löschen die haben 0 effekt

hatte eine test app mugeschrieben und da sind die übersehen wordne

das package musst du natürlich anpassen das muss da sein
 

sserio

Bekanntes Mitglied
uh die sind von mir von meinen klassen ... die kannst du weg löschen die haben 0 effekt

hatte eine test app mugeschrieben und da sind die übersehen wordne

das package musst du natürlich anpassen das muss da sein
also nochmal zu dem Code. Er funktioniert nicht, aufgrund von : Error: JavaFX runtime components are missing, and are required to run this application. Also jaa, außerdem, was bedeuten diese ... nach der variable TYP
 
G

Gelöschtes Mitglied 65838

Gast
Java:
 Error: JavaFX runtime components are missing, and are required to run this application.
dh deine module info und dein javafx import funktioniert nich

du weist dass jede "extends application" klasse in der module info als "exports xyz" drin stehen muss


die ... bedeuten dass eine beliebige anzahl bzw ein iterable übergeben werden kann.. is egal obs eine liste mehrere objekte sind oder ein array in der methjode wirds dann als array behandelt
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Java erstellt leere Datei Java Basics - Anfänger-Themen 8
B In welchem (Default) Pfad erstellt Java Dateien? Java Basics - Anfänger-Themen 4
M Java Eclipse IDE erstellt keinen Bin Ordner. Java Basics - Anfänger-Themen 10
M Java Bukkit Plugin (selbst erstellt) Java Basics - Anfänger-Themen 9
D Java-Pojekt in Eclispe erstellt -> Wie nun compilieren ? Java Basics - Anfänger-Themen 29
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
J Java Testklasse Java Basics - Anfänger-Themen 5
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
Ostkreuz Java Docs Java Basics - Anfänger-Themen 9
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
A Java Kurs / Tutorial Java Basics - Anfänger-Themen 6
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
R Operatoren Rechenoperation in Java verwenden für Calculator Java Basics - Anfänger-Themen 2
P Java 2n Potenzieren Java Basics - Anfänger-Themen 1
J Java Hamster Java Basics - Anfänger-Themen 4
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1
W Junit-Test (Java) Java Basics - Anfänger-Themen 4
W Testfälle bei Java ( Junit-Test) Java Basics - Anfänger-Themen 3
laxla123 If-else Java Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben