推荐用法
package fx.com;
import javafx.application.Application;
import javafx.beans.Observable;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.image.Image;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
import javafx.util.Callback;
public class Main4 extends Application {
public static void main(String[] args) {
Application.launch(Main4.class,args);
}
@Override
public void start(Stage primaryStage) throws Exception {
Data2 d1= new Data2("A",15,70,true);
Data2 d2= new Data2("B",15,11,false);
Data2 d3= new Data2("C",18,100,true);
Data2 d4= new Data2("D",20,52,true);
ObservableList<Data2> list = FXCollections.observableArrayList();
//监听列表被改变
// ObservableList<Data2> list = FXCollections.observableArrayList(new Callback<Data2, Observable[]>() {
// @Override
// public Observable[] call(Data2 param) {
// System.out.println(param.getAgeProperty());
// return new Observable[0];
// }
// });
list.addAll(d1,d2,d3,d4);
TableView<Data2> tableView = new TableView<>(list);
TableColumn<Data2,String> tc_name = new TableColumn<>("姓名");
tc_name.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Data2, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(TableColumn.CellDataFeatures<Data2, String> param) {
return param.getValue().getNameProperty();
}
});
TableColumn<Data2,Number> tc_age = new TableColumn<>("年龄");
tc_age.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Data2, Number>, ObservableValue<Number>>() {
@Override
public ObservableValue<Number> call(TableColumn.CellDataFeatures<Data2, Number> param) {
return param.getValue().getAgeProperty();
}
});
TableColumn<Data2,Number> tc_score = new TableColumn<>("分数");
tc_score.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Data2, Number>, ObservableValue<Number>>() {
@Override
public ObservableValue<Number> call(TableColumn.CellDataFeatures<Data2, Number> param) {
return param.getValue().getScoreProperty();
}
});
TableColumn<Data2,Boolean> tc_is = new TableColumn<>("is");
tc_is.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Data2, Boolean>, ObservableValue<Boolean>>() {
@Override
public ObservableValue<Boolean> call(TableColumn.CellDataFeatures<Data2, Boolean> param) {
return param.getValue().getIsProperty();
}
});
tableView.getColumns().addAll(tc_name,tc_age,tc_score,tc_is);
Button button = new Button("button");
AnchorPane anchorPane = new AnchorPane();
anchorPane.setTopAnchor(tableView,100.0);
anchorPane.setLeftAnchor(tableView,100.0);
anchorPane.getChildren().addAll(button,tableView);
Scene scene = new Scene(anchorPane);
primaryStage.setScene(scene);
primaryStage.setWidth(800);
primaryStage.setHeight(800);
primaryStage.setTitle("网格布局");
primaryStage.getIcons().add(new Image("http://www.haotuo.net.cn/Resources/cq/qunlogo.png"));
primaryStage.show();
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
//增加
tableView.getItems().add(new Data2("小李",77,55,false));
//删除
tableView.getItems().remove(0);
//改
tableView.getItems().set(2,new Data2("小的",22,0,true));
d1.setAge(1);
}
});
}
}
类Data2
package fx.com;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
public class Data2 {
private SimpleStringProperty name = new SimpleStringProperty();
private SimpleIntegerProperty age = new SimpleIntegerProperty();
private SimpleDoubleProperty score = new SimpleDoubleProperty();
private SimpleBooleanProperty is = new SimpleBooleanProperty( );
public Data2(String name, int age, double score, boolean is) {
this.name.set(name);
this.age.set(age);
this.score.set(score);
this.is.set(is);
}
public Data2() {
}
public String getName() {
return name.get();
}
public SimpleStringProperty nameProperty() {
return name;
}
public void setName(String name) {
this.name.set(name);
}
public int getAge() {
return age.get();
}
public SimpleIntegerProperty ageProperty() {
return age;
}
public void setAge(int age) {
this.age.set(age);
}
public double getScore() {
return score.get();
}
public SimpleDoubleProperty scoreProperty() {
return score;
}
public void setScore(double score) {
this.score.set(score);
}
public boolean isIs() {
return is.get();
}
public SimpleBooleanProperty isProperty() {
return is;
}
public void setIs(boolean is) {
this.is.set(is);
}
public SimpleStringProperty getNameProperty(){
return this.name;
}
public SimpleIntegerProperty getAgeProperty(){
return this.age;
}
public SimpleDoubleProperty getScoreProperty(){
return this.score;
}
public SimpleBooleanProperty getIsProperty(){
return this.is;
}
}
标签:return,TableView,javafx,JavaFX,new,import,数据,public,Data2 From: https://blog.51cto.com/u_10780206/6031338