该代码说明table的ColumnResizePolicy作用
import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.LabelBuilder;
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;
public class TableViewColumnResizePolicyDemo extends Application {
public static void main(String[] args) {
Application.launch(args);
}
@Override
public void start(Stage stage) throws Exception {
VBox root = new VBox();
root.autosize();
Scene scene = new Scene(root);
stage.setTitle("TableView Column Resize Policy Demo");
stage.setWidth(700);
stage.setHeight(400);
stage.setScene(scene);
stage.show();
configureTable(root);
}
private void configureTable(VBox root) {
final ObservableList<MyDomain> data = FXCollections.observableArrayList(
new MyDomain("Apple","This is a fruit.","Red"),
new MyDomain("Orange","This is also a fruit.","Orange"),
new MyDomain("Potato","This is a vegetable.","Brown")
);
TableView<MyDomain> table1 = getTableView(data);
table1.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY); //column随着table增大而增大
TableView<MyDomain> table2 = getTableView(data);
table2.setColumnResizePolicy(TableView.UNCONSTRAINED_RESIZE_POLICY); //column不会变化,仍是固定大小,会用额外空的column填充
root.setSpacing(15);
root.getChildren().addAll(LabelBuilder.create().text("CONSTRAINED_RESIZE_POLICY").style("-fx-font-weight:bold;").build(),table1,
LabelBuilder.create().text("UNCONSTRAINED_RESIZE_POLICY").style("-fx-font-weight:bold;").build(),table2);
}
private TableView<MyDomain> getTableView(ObservableList<MyDomain> data){
TableView<MyDomain> table = new TableView<MyDomain>();
TableColumn<MyDomain,String> titleColumn = new TableColumn<MyDomain,String>("Title");
titleColumn.setPrefWidth(100);
titleColumn.setCellValueFactory(new PropertyValueFactory<MyDomain,String>("name"));
TableColumn<MyDomain,String> descCol = new TableColumn<MyDomain,String>("Description");
descCol.setPrefWidth(250);
descCol.setCellValueFactory(new PropertyValueFactory<MyDomain,String>("description"));
TableColumn<MyDomain,String> colorCol = new TableColumn<MyDomain,String>("Color");
colorCol.setPrefWidth(100);
colorCol.setCellValueFactory(new PropertyValueFactory<MyDomain,String>("color"));
table.getColumns().addAll(titleColumn,descCol,colorCol);
table.setItems(data);
return table;
}
/**
* Domain Object.
*/
public class MyDomain{
private SimpleStringProperty name = new SimpleStringProperty();
private SimpleStringProperty description = new SimpleStringProperty();
private SimpleStringProperty color = new SimpleStringProperty();
public MyDomain(String name, String desc,String color){
this.name.set(name);
this.description.set(desc);
this.color.set(color);
}
public String getDescription() {
return description.get();
}
public SimpleStringProperty descriptionProperty(){
return description;
}
public String getName() {
return name.get();
}
public SimpleStringProperty nameProperty(){
return name;
}
public String getColor() {
return color.get();
}
public SimpleStringProperty colorProperty(){
return color;
}
}
}
从显示的效果看来,ColumnResizePolicy是控制column的大小是否自动增长。设置TableView.CONSTRAINED_RESIZE_POLICY,则table的colum大小随table的大小便化而变化。若设置TableView.UNCONSTRAINED_RESIZE_POLICY,table的column大小固定,则会多出一个空白的column以填充table的大小
这里有个javafx学习的中文网站,我把内容都丢那上面去了。
http://www.jfxee.com/
分享到:
相关推荐
NULL 博文链接:https://lujin55.iteye.com/blog/1811244
JavaFX学习资料总结
javaFx 学习--之布局菜单
最新的javaFX学习资料,相信javaFX必定成为主流。
javafx学习网站
JavaFX教程;JavaFX教程;JavaFX教程JavaFX教程;
JavaFX 8: Introduction by Example书的示例代码JavaFX 8: Introduction by Example
JavaFX学习曲线日记
javaFx 学习--之Adding Dynamic Behavior(加动态特性源码)
NULL 博文链接:https://lujin55.iteye.com/blog/1709828
javaFx 学习--之组件篇1(边框与布局管理1Label)
javaFx 学习--入门示例程序的源码
javafx语言中文教程,内附代码,有助于学习理解!
JavaFx 的官方入门教材,英文
javafx菜单之多级菜单1
学习JavaFX脚本语言
1.javafx-8-intro-by-example-master....4.pro-javafx-9-master.zip; 5.javafx-9-by-example-master.zip; 6.java-apis-extensions-and-libraries-master.zip; 7.Java+APIs+Extensions+and+Libraries+2nd+Edition.pdf
javafx学习资料,包括数据类型、操作符、函数等。
JavaFX+Jfoenix 学习笔记(一)--环境搭建及多款Hello World演示的源码 JavaFX的简单展示,主要是为了配合文章学习使用
javafx9的api,本人编译,无js报错版,发现里面除了api外,每个类中实例代码也是挺多的,大家可以参考使用。javafx前景要比swing好,大家可以学习。