欢迎您访问 marker 的雨林博客,我将与您分享最新最火的技术!
RSS订阅 by 雨林博客
加入收藏 设为首页  

JavaFX 使用TableView显示数据

发布时间: 13-07-05 05:12:33
     
分类:Java编程
( 0 ) 评论
   /   
( 1910 ) 阅读

JavaFXTableView表格组件使用,这个组件算是比较复杂的了。在Swing中采用数据模型的方式来定义显示数据,而JavaFX中有所不同,

1.       涉及到表格列和JavaBean数据绑定

2.       List集合数据的转换

3.       设置TableView的数据项目

 

 

代码例子:

import java.util.Date;
/**
 * 部门
 * @author marker
 * */
public class Department {

	/** 部门ID */
	private int id;
	/** 部门名称 */
	private String name;
	/** 成立时间 */
	private Date time;
	/** 部门描述 */
	private String description;
	
	
	public Department(int id,String name, Date time, String description) {
		this.id = id;
		this.name = name;
		this.time = time;
		this.description = description;
	}
	
	public Department(String name, Date time, String description) {
		this.name = name;
		this.time = time;
		this.description = description;
	}
	
	
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Date getTime() {
		return time;
	}
	public void setTime(Date time) {
		this.time = time;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	
	
	
	
}



import java.util.Date;

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.stage.Stage;

public class Main extends Application {
 
	
	/**
	 * 在启动JavaFX Application时调用
	 * */
	@Override
	public void start(Stage stage) throws Exception {
		stage.setTitle("部门系统");
		stage.sizeToScene();
		
		Group root = new Group(); 
		
		TableView<Department> tableView = new TableView<Department>();
		TableColumn<Department,String> DepNameCol     = new TableColumn<Department,String>("部门名称");
        TableColumn<Department,String> OpenTimeCol    = new TableColumn<Department,String>("成立时间");
        TableColumn<Department,String> DescriptionCol = new TableColumn<Department,String>("部门描述");
        
        //绑定数据,和设置列宽度
        DepNameCol.setCellValueFactory(new PropertyValueFactory<Department,String>("name") );
        DepNameCol.setPrefWidth(150);
    	OpenTimeCol.setCellValueFactory(new PropertyValueFactory<Department,String>("time"));
		OpenTimeCol.setPrefWidth(150);
		DescriptionCol.setCellValueFactory(new PropertyValueFactory<Department,String>("description"));
		DescriptionCol.setPrefWidth(200);
	
        
        //向表格中添加列标题
        tableView.getColumns().addAll(DepNameCol, OpenTimeCol, DescriptionCol);
        root.getChildren().add(tableView);
        
        
        ObservableList<Department> data = FXCollections.observableArrayList(
        	    new Department(1,"开发部门", new Date(), "就是搞开发的嘛"),
        	    new Department(2,"研发部门", new Date(), "一般来说都是....")
        	);
        tableView.setItems(data);
        
		
		//创建场景,并将树结构View数据放入场景内
        Scene scene = new Scene(root);
        stage.setScene(scene); 
        stage.show();
		
		
	}
	
	/**
	 * 程序入口
	 * @param args
	 */
	public static void main(String[] args) {
		Application.launch(Main.class, args);
	}
}



执行效果:

JavaFX的TableView from 雨林博客



FROM : 雨林博客

文章评论