首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果在FXML中指定了控制器,则无法将数据添加到TableView。如果未指定控制器,则无法绑定`onAction`

在FXML中,如果指定了控制器(Controller),则无法直接将数据添加到TableView。这是因为控制器负责处理用户界面和业务逻辑之间的交互,而不是直接操作数据。要将数据添加到TableView,需要在控制器中使用ObservableList来存储数据,并将该ObservableList与TableView进行绑定。

以下是一种实现方法:

  1. 在FXML文件中,定义一个TableView和相应的列(TableColumn)。
代码语言:txt
复制
<TableView fx:id="tableView">
    <columns>
        <TableColumn fx:id="column1" text="Column 1" />
        <TableColumn fx:id="column2" text="Column 2" />
    </columns>
</TableView>
  1. 在控制器类中,声明一个ObservableList来存储数据,并将其与TableView进行绑定。
代码语言:txt
复制
@FXML
private TableView<Data> tableView;
@FXML
private TableColumn<Data, String> column1;
@FXML
private TableColumn<Data, String> column2;

private ObservableList<Data> dataList = FXCollections.observableArrayList();

public void initialize() {
    tableView.setItems(dataList);
    column1.setCellValueFactory(new PropertyValueFactory<>("property1"));
    column2.setCellValueFactory(new PropertyValueFactory<>("property2"));
}
  1. 在控制器类中,定义一个方法来添加数据到ObservableList。
代码语言:txt
复制
public void addData() {
    Data newData = new Data("Value 1", "Value 2");
    dataList.add(newData);
}
  1. 在FXML文件中,将添加数据的方法与按钮的onAction事件进行绑定。
代码语言:txt
复制
<Button text="Add Data" onAction="#addData" />

这样,当用户点击"Add Data"按钮时,将会调用控制器中的addData方法,向ObservableList中添加新的数据,然后TableView会自动更新显示。

在这个例子中,我们使用了JavaFX的TableView和ObservableList来实现数据的展示和添加。你可以根据具体的需求,使用不同的技术和工具来实现类似的功能。

腾讯云提供了一系列云计算相关的产品,例如云服务器、云数据库、云存储等,可以根据具体需求选择适合的产品。你可以访问腾讯云官网(https://cloud.tencent.com/)了解更多关于腾讯云的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JavaFX 简介

这个程序其实也没什么难点,就是使用了网格布局,然后每个元素添加到网格。关于网格布局的属性意义可以参考官方的图。 ?...如果学习过其他类似描述语言的话,会发现这些其实都差不多。唯一需要注意的就是布局里面的fx:controller属性,它指定一个控制器控制器的作用就是编写界面对应的代码。 <?...在FXML中用fx:id属性指定的ID,可以在控制器声明为一个类字段,通过这个字段就可以和界面组件进行交互。同样道理,onAction声明的事件处理程序,在控制器中就是一个方法。...如果希望修改组件样式,JavaFX提供CSS接口,让我们可以直接使用CSS文件修改样式。首先需要在FXML文件添加相应样式表的引用。文件名前面的@表示这个CSS文件和FXML文件在同一目录下。...以上就是这篇文章的内容如果有同学想使用Java编写图形界面程序,可以考虑使用JavaFX,这是一个很不错的选择。

5.7K81
  • OUT !!!用混元打造专属智能化桌面应用

    与传统的 Swing 或 AWT 相比,JavaFX 提供更强大的图形渲染能力、响应式布局设计,并支持使用 FXML 和 CSS 来定义界面结构与样式,使得 UI 开发更加灵活。...开发环境配置 安装和配置 JavaFX 在这里提一下,Java 8 内置JavaFX,但是从Java 9开始 JavaFX 不再包含在 JDK ,而是作为一个独立的模块提供。...使用 HttpClient 进行网络请求,并解析返回的 JSON 数据。 JavaFX 前端开发 FXML 文件构建界面 FXML 是 JavaFX 中用于定义 UI 布局的 XML 格式文件。...> JavaFX 控制器控制器类是处理界面逻辑的地方。...更新UI必须在JavaFX应用主线程中进行 Platform.runLater(() -> chatBox.getChildren().add(messageLabel)); // 消息添加到

    39231

    六天完成一个简单iOS App - 第五天

    系统相簿 如果仅仅是图片保存到系统相机胶卷相簿,提供非常简单的函数。..., 用户还没有做出选择 如果用户还没有做出选择,对用户授权信息进行请求,如果用户点击不允许什么都不做,点击开始保存图片 2.图片存储在交卷相册 3.判断是否已经创建自己相簿 4.如果已经创建了获得曾经创建过的相簿...,获得图片,获取添加图片到相簿的请求,图片添加到相簿 5.如果没有创建相簿,创建相簿的请求,获得创建相簿,获得图片,获取图片添加到相簿的请求,图片添加到相簿 直接来看保存图片到相册的save按钮点击事件吧...]的performChanges方法的block,并且图片添加到相簿、创建相簿都是耗时操作,他们都在子线程执行。...;; } }]; }]; } /** * 获得相簿 * 如果已经找到应用对应的相簿直接添加到相簿,如果没有找到创建新的相簿 */ - (

    88360

    iOS的MVC框架之控制层的构建(下)

    ,对tableView指定委托和数据源,可以看出在viewDidLoad里面最适合做的事情就是建立视图和控制器之间的关联和绑定。...,并在回调中将数据模型数据更新视图就可以。...return cell; } 6.建立中间绑定类 上面的所有解决方案要么就是代码逻辑放在视图控制器处理,要么就将代码逻辑移植到视图中处理,并且有可能视图还会持有数据模型的事情发生。...我们还可以这部分更新的逻辑提取出来让他即不在视图中处理也不在视图控制器处理而是提供一个新的数据绑定类来解决这个问题。...通过数据绑定类来实现视图和数据模型之间的交互也就是现在我们经常说道的MVVM的VM类所做的事情。

    4.4K30

    模拟京东商城实现导航条隐藏功能

    ,直接通过 UIView的成员变量改View的状态,但是如果控制器呢?...,然后在observeValueForKeyPath 方法,由于无法直接控制外部VC的界面属性,所以通过代理传值,告诉外部控制器,界面要发生的变化 //tableView控制器的.m文件 -(void...UIView的属性一样,只是这里跨了控制器无法拿到属性,所以是通过代理传值告诉外部的那个控制器做出相应的改变而已,本质核心不变。...细节2:判断界面的显示or隐藏,如果导航条View已经隐藏,再怎么上拉,也不能再调用使界面再次隐藏的办法,同时不能再让下方两个View的Y值 --; bug1.gif 如图所示,要添加判断,如果导航条已经隐藏...,按钮View 和 tableView就不要再一直往上跑了,最多就上移一个View的位置就够了,所以要添加判断; 如果是在同一个控制器,可以添加 - _navigationView.hidden

    1.8K120

    六天完成一个简单iOS App - 第六天

    唯一有一个注意点:当点击进入推荐标签页面,如果此时数据还没有获取到,点击返回,SVP的提醒还在,block会对控制器产生强引用,如果block还没有执行完,控制器是不会死的,block执行完毕之后,强引用才会被放开...MJRefresh提供自动判断的方法 /** 自动根据有无数据来显示和隐藏(有数据就显示,没有数据隐藏。...另外因为这里setFrame方法只对cell的高度做了修改,所以稍作修改就可以完整的显示cell,但是如果在setFrame对cell的位置和宽高同时做了修改,就会产生难以捉摸的错误,所以如果需要在...需要注意一点:iOS9之后,要求如果window在程序启动完之后就显示必须有一个根控制器。因此需要设置window延迟创建即可。...后刷新数据实现 重复点击tabbarButton或者titleView的button之后刷新数据,首先需要记录下来上次的点击按钮,与本次点击比较,如果发现是重复点击通知界面刷新。

    1.3K50

    iOS学习——tableview带编辑功能的cell键盘弹出遮挡和收起问题解决

    但是,如果我们的整体布局并不是只有一个UITableView,或者我们在项目中需要用到MBProgressHUD框架时,我们可能就不能直接将我们的控制器设置成UITableViewController或其子类...然而,避免HUD添加到具有复杂视图层次结构的某些UIKit视图(如UITableView或UICollectionView)是一个好主意。...,才能保证我们的可以对我们控制器tableview进行控制。...cell的应用,首先,我们再主控制器定义几个属性来保存我们键盘弹出时tableview的contentOffset以及当前编辑cell的frame,然后在应用自定义cell时设定我们的两个回调block...的偏移量,所以,在收起键盘后,我们tableview的contentOffset值设为弹出之前的值就可以,回到键盘弹出之前的状态

    3.9K80

    Swift-MVVM 简单演练(一)

    如果在某一个地方就可以写好,对其它控制器的代码入侵的越少越好,这是一个程序好的架构的原则 首先,在HQNavigationController隐藏系统的navigationBar override func.../// 加载数据,具体的实现由子类负责 func loadData() { } 绑定数据测试 由于HQBaseViewController里面实现tableView的tableViewDataSource...()定义控件的宽/高,可以在metrics中指定 VFL 参数的解释 : views: 定义 VFL 控件名称和实际名称的映射关系 metrics: 定义 VFL () 内指定的常数映射关系,...总结 使用代理传递消息是为了在控制器和视图之间解耦,让视图能够被多个控制器复用,如TableView 但是,如果视图仅仅是为了封装代码,而从控制器剥离出来的,并且能够确认该视图不会被其它控制器引用,...登录之后才显示别的,因此,我们可以HQBaseViewController的setupUI方法设置成fileprivate不让外界访问到,并且setupTableView设置成外界可以访问,如果需要在登录后的控制器里面显示所需的样式

    10.3K51

    iOS架构入门 - MVC模式实例演示

    : 又导致Controller特别臃肿,里面代码特别多,如果当前控制器需要多次请求,代码量可能过1000行,不好维护 写在Controller里无法复用,除非你在 VC2里面 copy 当前VC的 网络请求的代码...(很关键的一步) 模块化划分,每个模块对应自己的一个Model,例如Demo2模块,View层里面有个Demo2Model,网络请求&&数据处理写到Model ---- 知识1:如何传值(参数) @...reloadDatas]; }]; } 如果父类没有的方法或属性,在子类里面写就行了,不会影响到父类代码,父类一般也是放公共,常用的方法(或属性),如果是特殊的,直接在子类里面新增即可,无需添加到父类...; } 根据我们的封装,基本上所有的控制器都需要设置界面 setupUI 获取数据 loadDatas,所以这两个函数抽到基类MNBaseViewController 因为iOStableView...应该算最常见的控件之一,基本上大多数界面都会用它展示数据,所以tableView也抽到基类,当公告属性 有tableView 就跑不了数据,datas 同理,也抽到基类 同时,设置MNBaseViewController

    1.3K00

    窥探Swift之协议(Protocol)和委托代理(Delegate)回调的使用

    上显示的数据,在正常开放这些数据往往来源于网络请求,而在本篇博客中就模拟数据源,来为我们的TableView提供显示的数据。...数据源的格式是一个数组,而数组存放的是多个字典,每个字典有两个键值对,一个键值对存储要显示图片的文件名,另一个键值对存储美女的名字。为了使该数据的存储结构,请看下方结构图。 ?     ...原理图有,接下来就要使用代码来创建出上述结构的数据以供TableView数据源使用,下面的方法就是实现上述结构的函数。        ...下方的代码就是关联tableview指定代理方法。...对myTableView的dataSource(数据提供者)指定完代理对象后,接下来就是要实现UITableViewDataSource的相应的方法,ViewController通过这些协议委托回调的代理方法来为

    3.5K80

    iOS基础问答面试题连载(二)-附答案

    UIWindow是一种特殊的UIView,通常在一个app至少有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view, 最后控制器的view...加载指定标识的控制器. 9.initWithNibName的加载过程? 如果没有指定名称.指定为nil,那么它就会去先加载跟它相同名称的Xib....UIPickView选择控件,用来供用户选择一些城市等.它的基本用法与tableView基本相似,要设置数据源,代理, 让其展示数据 12.KVC底层实现?...当调用push方法时, 会把要push的控制器添加到导航控制器管理的栈,把之前导航控制器栈顶控制器View给移除,把当前栈顶控制器添加上去. 15.导航pop做了哪些事情?...做tableView的时候一定要用真机. 如果是从网络加载数据,一定要放到子线程(异步加载)当中做.

    1.4K90

    Java注解之@PathVariable

    可以选择性地在 @PathVariable 注解中指定路径变量的名称,例如 @PathVariable("id")。如果注解未指定名称,默认使用方法参数名作为路径变量的名称。...如果在请求的路径未提供 @PathVariable 注解标注的变量名, Spring MVC 会抛出MissingPathVariableException异常。...值得注意的是,如果在 URL 中提供路径变量名,但是其值无法转换成方法参数类型,那么 Spring MVC 也会抛出异常。...它首先检查内置的默认转换器,以满足常见的数据类型需求。 2、如果内置的默认转换器无法满足要求,Spring MVC会检查是否已定义自定义的转换器。...如果请求URL不包含整数值,或者值的格式无法解析为整数,例如"/users/abc",Spring MVC抛出TypeMismatchException异常。

    18310

    Core Data 基础

    的样式修改为Add (5)设置cell的重用ID (6)视图控制器做关联 (7)执行&连线,生成方法:newPerson 使用代码修饰界面 第 3 步:创建数据模型 实体 (entity)是数据模型的基石...注意:文件添加到DataModel文件夹步骤 1、右击文件列表—> show in Finder —>在test文件夹下新建一个DataModel文件夹 —>文件夹拖入到项目的文件列表 2、...2) (3) 第 6 步:修改 获取要修改的 实体描述 设置对象属性 保存数据 (1)在tableview代理方法内实现修改数据 (2) 在viewDidLoad方法 设置代理 第 7 步:删除...注意:文件添加到DataModel文件夹步骤 1、右击文件列表—> show in Finder —>在test文件夹下新建一个DataModel文件夹 —>文件夹拖入到项目的文件列表 2、...2) (3) 第 6 步:修改 获取要修改的 实体描述 设置对象属性 保存数据 (1)在tableview代理方法内实现修改数据 (2) 在viewDidLoad方法 设置代理 第 7 步:删除

    1K30

    Kubernetes 1.17 特性:Kubernetes卷快照移至Beta版

    快照,即卷的时间点副本,可用于提供新卷(预填充快照数据)或现有卷还原到先前状态(由快照数据还原)。 为什么要将卷快照添加到Kubernetes?...删除密钥将作为注释添加到卷快照内容。 新的终结器添加到卷快照 API对象,以防止在将其绑定到卷快照内容API对象时将其删除。...如果未指定VolumeSnapshotClassName,则会自动选择一个,如下所示:从源卷的PVC或PV获取StorageClass。如果可用,获取默认的VolumeSnapshotClass。...从快照创建卷 一旦有绑定的就绪卷快照对象,就可以使用该对象设置一个新卷,新卷预先填充快照数据。 要设置预填充快照数据的新卷,请使用PVC的dataSource字段。...作为存储供应商,如何快照支持添加到CSI驱动程序

    1.2K20

    前端MVC学习总结(一)——MVC概要与angular概要、模板与数据绑定

    将此过滤器添加到 ng-bind-html 、data-ng-bind-html? 所绑定数据,便实现数据加载时对于 html 标签的自动转义。 示例代码: <!...2.3、ng-model 使用ng-model属性把元素绑定到模型属性上,如果$scope上不存在,立即创建,如果存在绑定,允许同时绑定到多个HTML元素上。...要注意$scope是否存在该模型,如果有则会初始化数据。 2.4、ng-change ng-change属性来指定一个控制器方法,变化时触发 当用户改变输入时计算给出的表达式。...如果表达式结果为一个数组,数组每个元素为使用空格分隔的一个或多个类名字符串。 如果表达式结果为一个对象,对象的每个key-value如果键值为真时键名作为类名。...三、区分UI和控制器的职责 控制器的职责: 1、为应用的模型设置初始状态 2、通过$scope对象把数据模型和函数暴露给视图(UI模板) 3、监视模型其余部分的变化,并采取相应的动作,双向绑定 为了让控制器保持轻量可管理状态

    12.6K30

    前端MVC学习总结(一)——MVC概要与angular概要、模板与数据绑定

    将此过滤器添加到 ng-bind-html 、data-ng-bind-html? 所绑定数据,便实现数据加载时对于 html 标签的自动转义。 示例代码: <!...,如果$scope上不存在,立即创建,如果存在绑定,允许同时绑定到多个HTML元素上。...如果表达式结果为一个数组,数组每个元素为使用空格分隔的一个或多个类名字符串。 如果表达式结果为一个对象,对象的每个key-value如果键值为真时键名作为类名。...练习:购物车 1、双向绑定集合数据 2、执行移除事件 3、隔行换色、使用angularJS完成 4、点击数量与小计时进行排序(选做) 三、区分UI和控制器的职责 控制器的职责: 1、为应用的模型设置初始状态...[itemN ]]]]); 一个或多个新元素添加到数组开始,数组的元素自动后移,返回数组新长度 arrayObj.unshift([item1 [item2 [. . .

    15.3K100

    简易理解设计模式之:代理模式——iOS列表视图控件设计方式

    而动态代理模式利用反射的原理去实现,此处不继续展开了。...系统启动时,我们避免不了大量new很多对象,如果在new的过程存在消耗很多资源的情况,使用代理模式分离,使用一个代理对象替代它的原有的位置,可以加快系统的启动速度。...这个过程就是使用代理模式实现延迟加载。 2.2、安全代理和智能指引 在系统开发,我们有时需要保护某些对象的访问权限,实现端只需要知道自己需要用的方法即可,其它额外的事情均有代理端控制。...iOS开发存在大量的原生自带的视图控件,在视图控制器中使用控件并不需要复杂的生成一堆对象和设置各种属性,只需要简简单单调用几个实现方法即可。苹果iOS视图控件的设计可以说这个模式提现得淋漓尽致。...如果不这么做,大量UI的方法都只能写在控制器里面,造成代码臃肿。通过代理对象的方式给控制器瘦身,视图控件也得到了复用。

    78520

    springmvc常用注解标签详解

    @Resource装配顺序: ①如果同时指定name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到抛出异常。...②如果指定name,则从上下文中查找名称(id)匹配的bean进行装配,找不到抛出异常。 ③如果指定type,则从上下文中找到类似匹配的唯一bean进行装配,找不到或是找到多个,都会抛出异常。...④如果既没有指定name,又没有指定type,自动按照byName方式进行装配;如果没有匹配,回退为一个原始类型进行匹配,如果匹配自动装配。...”) 在标记方法的时候指定,若未指定使用返回类型的类名称(首字母小写)作为属性名称。...,该名称可以通过 @ModelAttribute(“attributeName”) 来指定,若未指定使用参数类型的类名称(首字母小写)作为属性名称。

    44720
    领券