`

JavaFX学习之样例9

 
阅读更多
  该代码说明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/
分享到:
评论

相关推荐

    JavaFX学习之样例8

    这个"JavaFX学习之样例8"可能是一个教程或示例集合,用于教授如何使用JavaFX来创建一个特定的图形元素,比如时钟。在这个例子中,我们可能将学习如何利用JavaFX的图形和动画功能来构建一个可交互的模拟时钟。 首先...

    javafx2introbyexample:javaFX中的样例代码

    9. **媒体支持**:JavaFX的`Media`和`MediaPlayer`类支持音频和视频的播放,使得开发多媒体应用变得简单。 10. **Scenegraph**:JavaFX使用Scenegraph模型来表示和渲染UI。这是一个基于树的数据结构,其中每个节点...

    JavaFX2开发教程

    运行时还允许你体验官方提供的样例程序,这些样例展示了JavaFX的各种功能,源代码可供学习参考。 在NetBeans环境中配置JavaFX开发环境是另一个关键步骤。JavaFX2.0在Mac系统上的安装提供了更丰富的功能,如高性能...

    我的代码样例

    综上所述,这个压缩包“我的代码样例”提供了丰富的编程实践材料,覆盖了Java API的运用以及完整的图书管理系统开发,对于Java初学者和进阶者都有很大的学习价值。通过分析和学习这些代码,可以提升编程技巧,了解...

    javaFX2.0教程

    在学习JavaFX的过程中,不断尝试、运行样例和构建自己的项目对于掌握JavaFX是非常有帮助的。随着JavaFX 2.0的出现,开发者有了一个功能强大、跨平台的工具来创建高质量的桌面应用程序。通过本教程,你将能够学习到...

    GUI样例.7z

    总的来说,这个压缩包提供的GUI样例涵盖了基础界面设计、用户认证流程以及基本计算功能的实现,对于学习和掌握GUI编程,尤其是事件驱动编程和用户交互设计,具有很高的参考价值。通过分析和实践这些案例,开发者能够...

    java学习和项目中一些典型的应用场景样例代码.zip

    这个名为"java学习和项目中一些典型的应用场景样例代码.zip"的压缩包显然包含了一些Java编程的实际应用示例,旨在帮助学习者理解Java在实际项目中的运用。下面,我们将深入探讨Java的一些关键应用场景和相关知识点。...

    jfreechart样例

    学习和使用JFreeChart样例,你可以逐步理解JFreeChart库的工作原理,掌握创建各种复杂图表的方法,并在自己的项目中灵活运用。这对于任何需要在Java环境中处理数据可视化需求的开发者来说,都是一个非常宝贵的资源。

    JAVA作业目录及样例

    本资源“JAVA作业目录及样例”是针对学习Java编程的学生们提供的一份宝贵的参考资料,它包含了Java程序设计实验和半期考试的相关内容,帮助学生理解和实践Java的核心概念。 Java程序设计实验部分通常涉及基本语法、...

    Java-Learning:java学习样例代码

    【Java学习样例代码】是针对Java编程语言的学习资源,主要包含了各种Java编程示例,旨在帮助初学者或有经验的开发者深入理解Java语言的核心概念和技术。这些代码样例涵盖了从基础语法到高级特性的广泛内容,对于学习...

    e(fx)lipse

    6. **样例代码**:提供JavaFX示例代码,帮助开发者了解和学习JavaFX API的用法。 7. **语法高亮**:对JavaFX剧本语言(FXML)提供语法高亮和错误检查。 在安装了**e(fx)lipse** 的Eclipse中,用户可以通过“File” ...

    demo.rar_DEMO

    9. **Swing和JavaFX**:这两者是Java的GUI库,样例程序可能会创建窗口应用,展示按钮、文本框、菜单等组件的使用。 10. **反射和注解**:反射允许在运行时检查类的信息,注解提供元数据,样例程序会展示它们如何...

    基于智能家居,从客厅到卧室,从中控到sensor,开发者可以体验各种家居的开发样例,打造自己的家居体验,享受万物互联的快感。

    这里,我们主要关注的是基于Java的开发样例,如在"learn-java-master"这个项目中,开发者可以学习如何使用Java语言来实现智能家居系统的关键部分。 首先,让我们深入了解一下Java在智能家居中的应用。Java是一种...

    WebViewSample源码

    总结来说,`WebViewSample`源码是一个学习JavaFX如何集成Web内容的绝佳实例。通过对源码的深入理解和实践,开发者可以掌握如何在JavaFX应用程序中利用`WebView`组件展示丰富的Web内容,并实现与网页的交互。这不仅...

    21天精通java源代码

    11. **Swing与JavaFX**:这两个是Java的图形用户界面(GUI)工具包,用于创建桌面应用程序。 12. **Java EE**:如果深入学习,还会涉及Java企业版,如Servlet、JSP、EJB等,用于构建服务器端应用。 通过21天的系统...

    JAVA简单实例

    9. **Swing和JavaFX**: 这是Java的图形用户界面(GUI)库,可用于创建桌面应用程序。初学者应学习如何使用JFrame、JButton等组件创建交互式界面。 10. **Java标准库**: 学习并熟练使用Java标准库(如java.util、...

    desktop-project:样例项目Kelompok

    为了深入理解这个项目,你需要查看源代码,学习其中的类结构、方法实现以及如何通过JavaFX或Swing等库创建图形用户界面。同时,了解如何在Java中实现文件I/O操作,处理系统事件,以及可能涉及的网络通信(如果有的话...

    Jfreechart学习资源

    JFreeChart是一个强大的开源库,专门用于生成高质量的2D图表,适用于各种Java应用程序,包括Swing、JavaFX、Applet以及Servlet。本文将深入探讨JFreeChart的基础知识、主要功能以及如何使用它来创建各种类型的图表。...

    Chris-Heavner-Portfolio-1:代码样例

    【Chris-Heavner-Portfolio-1:代码样例】是一个与Java编程相关的项目,它展示了开发者克里斯·海夫纳的编程技能和经验。在这个项目中,我们可以期待找到一系列使用Java语言编写的代码示例,可能包括不同领域的应用,...

    java编程实例(精心整理百个实例)

    8. **图形用户界面(GUI)设计**:Java提供了丰富的Swing和JavaFX库来创建桌面应用。实例将教你如何使用组件(如按钮、文本框、标签等)构建用户界面,响应用户事件,并实现交互逻辑。 这个Java编程实例集合是深入...

Global site tag (gtag.js) - Google Analytics