java fx 文本输入_使用JavaFX创建自定义文本编辑组件

对于单行文本,请使用TextField .

对于多行文本,请使用TextArea .

对于样式文本,请使用HTMLEditor .

如果使用TextField或TextArea,它们都是TextInputControl的子类 . TextInputControl提供caretPositionProperty,您可以使用它来读取和修改插入位置 . 所有场景图形对象(包括TextField和TextArea)都是Node的实例 . 节点允许您设置自定义EventHandlers和event filters . 您可以使用事件处理程序覆盖TextInputControls的默认键处理处理程序,以便您可以实现自己的处理 .

如果您需要通过自定义TextField或TextArea实例无法获得的进一步自定义功能,那么您可以创建自己的TextInputControl子类并根据需要实现自定义文本编辑组件,但由于复杂性,我不会真正建议这种方法并且可能需要依赖于您可能最终需要的内部JavaFX apis .

TextField对我不起作用,因为:1 . 它有一个指示焦点的边框,我不知道如何删除 .

这是一个指向default caspian.css stylesheet for JavaFX 2.2的链接 . 您可以通过设置's :focused pseudoclass selector style to the same values as it'的默认选择器来设置TextField的样式以删除焦点边框 . 例如:

.text-field:focused {

-fx-background-color: -fx-shadow-highlight-color, -fx-text-box-border, -fx-control-inner-background;

-fx-background-insets: 0, 1, 2;

-fx-background-radius: 3, 2, 2;

}

TextField对我不起作用,因为:2 . 它有固定数量的列,我需要动态更改宽度 .

TextField是一个可调整大小的控件,如果将其放在具有适当约束的调整大小布局窗格中,它将动态更改其宽度 . TextField中的列数设置为preferred column count,而不是固定列数 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值