B4X编程语言:B4X控件方法汇总
1、AddNode、AddView方法
AddNode(Node As javafx.scence.Node,Left As Double,Top As Double,Width As Double,Height As Double) ' B4J控件
AddView(View As javafx.scence.Node,Left As Double,Top As Double,Width As Double,Height As Double) ' B4J的B4XView
AddView(View As android.scence.View,Left As Int,Top As Int,Width As Int,Height As Int) ' B4A控件
向控件内添加视图控件,用于容器类控件。
BAJ:Pane
B4A:Activity、Panel
示例:
Pane1.AddNode(Button1,10,10,100,30)
Pane1.As(B4XView).AddView(Button1,10,10,100,30)
Panel1.AddView(Button1,10dip,10dip,100dip,30dip)
2、As方法
As(Type As Object)
将对象转换为另一个类型的对象,控件的As方法可以使控件能够使用自己没有的另一个类型控件的属性或方法。
示例:
将Button1顺时针旋转10度
Button1.As(B4XView).Rotation=10
3、BringToFront和SendToBack方法
这两个方法都是更改控件视图的Z顺序方法。
BringToFront是将控件放到最前面,也就是放到最顶层以免被其它层遮挡。
SendToBack正好相反,是将控件向后放,以让其它控件在前面。
我们可以利用这两个方法向同一个容器内同一个位置添加多个相同大小的视图,需要时调到前面,不需要时放到后面隐藏。
示例:
Pane2.As(B4XView).BringToFront ' B4J控件
Pane2.As(B4XView).SendToBack ' B4J控件
Panel2.BringToFront ' B4A控件
Panel2..SendToBack ' B4A控件
4、GetNode、GetView方法
GetNode(Index As Int) As Node ' B4J控件
GetView(Index As Int) As B4XView ' B4J、B4A的B4XView
GetView(Index As Int) As View ' B4A控件
根据控件内的视图索引返回一个视图,B4J:返回Node,B4A:返回View,B4XView:返回 B4XView。
该方法主要用于容器类控件。BAJ:Pane;B4A:Activity、Panel。
示例:
Pane1.GetNode(0).As(B4XView).Color=xui.Color_Blue ' B4J控件
Pane1.As(B4XView).GetView(0).Color=xui.Color_Blue ' B4J控件
Panel1.GetView(0).Color=Colors.Blue ' B4A控件
5、GetAllViewsRecursive方法
GetAllViewsRecursive As IterableList
获取并返回控件内的所有子控件的列表,包括子控件内的子控件。terableList是可迭代列表。
B4J:返回Nodes列表
B4A:返回Views列表
B4XView:返回B4XViews列表
该方法常用于容器类控件。BAJ:Pane,B4A:Activity、Panel。
示例:
For Each v As Node In Pane1.GetAllViewsRecursive ' B4J
If v is Label Then
v.Alpha=0.8
End If
Next
For Each v As B4XView In Pane1.GetAllViewsRecursive ' B4J
......
Next
For Each v As View In Panel1.GetAllViewsRecursive ' B4A
......
Next
6、GetBitmap、GetImage方法
GetBitmap As B4XBitmap ' B4A
GetImage As Image ' B4J的ImageView控件
返回控件的图像,在B4J中用于ImageView控件,在B4A中用于设置了背景图像的控件。
示例:
Dim Image1 as Image=Label1.As(B4XView).GetBitmap
Dim Image1 as Image=ImageView1.GetImage
7、 Initialize方法
Initialize(EventName As String)
用于用代码声明的对象的初始化,在设计器中添加的控件不需要初始化。
EventName是为控件添加事件时要使用的控件名称如:Sub btn1_Click。
示例:
Dim btn1 As Button
btn1.Initialize("btn1")
8、LoadLayout 方法
LoadLayout(LayoutFile As String)
加载布局文件。在B4J用于Pane类型控件、在B4A用于Panel类型控件,布局文件必须放在项目的Files文件夹。
示例:
TabPane1.LoadLayout("MainPage","第一页")
9、RequestFocus 方法
将焦点移到该控件上,如:Button1.RequestFocus。
10、从容器移除控件方法
RemoveNodeFromParent ' B4J控件
RemoveViewFromParent ' B4J、B4A的B4XView
RemoveView ' B4A控件
将控件从其所在容器中移除,其中:RemoveNodeFromParent仅用于B4J。
示例:
Button1.RemoveNodeFromParent
Button1.RemoveViewFromParent
Button1.RemoveView
11、SetAlphaAnimated方法
SetAlphaAnimated(Duration As Int,Alpha As Double) ' B4J
SetAlphaAnimated(Duration As Int,Alpha As Float) ' B4A
为控件设置不透明度动画,在给定时间内从当前不透明度变为指定的不透明度。
Duration:以毫秒为单位的动画时间。
Alpha:不透明度,取值范围0-1。0为完全透明,1为完全不透明。
示例:
按下Button1时不透明度变为0.2,释放时复原
Private Sub Button1_MousePressed (EventData As MouseEvent)
Button1.SetAlphaAnimated(200,0.2)
End Sub
Private Sub Button1_MouseReleased (EventData As MouseEvent)
Button1.SetAlphaAnimated(200,1)
End Sub
12、SetLayoutAnimated方法
SetLayoutAnimated(Duration As Int,Left As Double,Top As Double,PrefWidth As Double,PrefHeight As Double) ' B4J
SetLayoutAnimated(Duration As Int,Left As Int,Top As Int,Width As Int,Height As Int) ' B4A
为控件设置布局动画,在给定时间内,从当前位置、大小变为指定位置、大小。
示例:
Button1.SetLayoutAnimated(200,0,50,150,40)
Button1.SetLayoutAnimated(200,0,50dip,150dip,40dip)
13、SetLayout方法
SetLayout(Left As Int,Top As Int,Width As Int,Height As Int) ' B4A
调整控件大小和布局,仅用于B4A控件。
示例:
Button1.SetLayout(10dip,50dip,150dip,40dip)
14、SetColorAndBorder方法
SetColorAndBorder(BackgroundColor As Int,BorderWidth As Dopuble,BorderColor As Int,BorderComerRadius As Int)
设置控件背景色、边框颜色、边框粗细、边框圆角半径。4A的Int数据要加dip。
示例:
Label1.As(B4XView).SetColorAndBorder(xui.Color_Cyan,1,xui.Color_Blue,5)
15、SetRotationAnimated方法
SetRotationAnimated(Duration As Int,Degree As Double)
为控件设置旋转动画,在给定时间内,以控件中心为圆心,从当前角度旋转到给定角度。
Duration:以毫秒为单位的动画时间。
Degree:旋转角度,正值顺时针旋转,负值逆时针旋转。
示例:
Button1.As(B4XView).SetRotationAnimated(1000,-20)
16、SetSelection方法
SetSelection(Start As Int,Length As Int)
选中控件中指定位置和长度的文本。
B4J:用于TextField、TextArea
B4A:用于EditText
示例:
TextField1.SetSelection(1,5)
EditText1.SetSelection(1,5)
17、SetTextAlignment方法
SetTextAlignment(Vertical As String,Horizontal As String)
设置控件文本的对齐方式。对齐方式选项:
Vertical:TOP、CENTER、BOTTOM
Horizontal:LEFT、CENTER、RIGHT
示例:
Label1.As(B4XView).SetTextAlignment("CENTER","LEFT")
18、SetColorAnimated方法
SetColorAnimated(Duration As Int,FromColor As Int,ToColor As Int)
设置控件背景颜色动画,在给定时间内背景颜色从FromColor渐变到ToColor。
示例:
Button1.As(B4XView).SetColorAnimated(200,xui.Color_Black,xui.Color_LightGray) ' B4J控件
Label1.SetColorAnimated(200,xui.Color_Black,xui.Color_LightGray) ' B4A控件
19、SetTextColorAnimated方法
SetTextColorAnimated(Duration As Int,ToColor As Int) ' 仅B4A控件
设置控件文本颜色动画,在给定时间内,控件文本从当前颜色渐变为给定颜色ToColor,仅用于B4A。
示例:
Label1.SetTextColorAnimated(200,xui.Color_Cyan)
20、SetTextSizeAnimated方法
SetTextSizeAnimated(Duration As Int,TextSize As Double) ' B4J控件
SetTextSizeAnimated(Duration As Int,TextSize As Float) ' B4A控件
设置控件文本大小动画,在给定时间内,文本字体从当前大小变为指定大小。
示例:
Label1.As(B4XView).SetTextSizeAnimated(200,20) ' B4J
Label1.SetTextSizeAnimated(200,20) ' B4A
21、SetVisibleAnimated方法
SetVisibleAnimated(Duration As Int,Visible As Boolean)
设置控件可见性动画,在给定时间内,控件从可见渐变为不可见,或从不可见渐变为可见。
Duration:以毫秒为单位的动画时间。
True:由不可见渐变为可见。
False:由可见渐变为不可见。
示例:
Label1.As(B4XView).SetVisibleAnimated(300,True) ' B4J
Label1.SetVisibleAnimated(300,True) ' B4A
22、 SetSize方法
SetSize(Width As Double,Height As Double) ' 仅B4J
设置控件大小,设计器定义的控件在B4XPage_Created或AppStart例程中不起作用。
示例:
Button1.SetSize(150,50)
23、SelectAll方法
SelectAll用于选中控件中的所有文本
B4J:用于TextField、TextArea
B4A:用于EditText
24、 Snapshot方法
Snapshot As B4XBitmap
捕获控件的外观并返回所渲染的图像。
示例:
Dim Image1 As Image=Label1.Snapshot ' B4J控件
Dim Image1 As Image=Label1.As(B4XView).Snapshot ' B4A控件
ImageView1.SetImage(Image1)
25、Snapshot2方法
Snapshot2(BackgroundColor As javafx.scence.paint.Paint) As Image ' 仅B4J控件
类似Snapshot,但可以设置图像的背景颜色。只对透明背景色的控件有效。
示例:
Dim Image1 As Image=Label1.Snapshot2(fx.Colors.Cyan)
ImageView1.SetImage(Image1)
相关文章:
B4X编程语言:B4X控件方法汇总
1、AddNode、AddView方法 AddNode(Node As javafx.scence.Node,Left As Double,Top As Double,Width As Double,Height As Double) B4J控件 AddView(View As javafx.scence.Node,Left As Double,Top As Double,Width As Double,Height As Double) B4J的B4XView …...
基于XML配置Bean和基于XML自动装配
目录 基于XML配置Bean id分配规则 通过id获取bean 通过类型获取bean 通过C命名空间配置bean 使用C命名空间 通过P命名空间配置bean 通过util:list进行配置bean 指定id,直接ref引用过来 通过外部属性文件配置Bean Bean信息重用(继承)…...
全排列 dfs
给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有 a<b<…<y<z ,而且给定的字符串中的字母已经按照从小到大的顺序排列。 输入格式 输入只有一行,是一个由不同的小写字母组成的字符串…...
linux内存相关命令的尝试
文章目录 前言freeMem 部分的解释Swap 部分的解释 vmstatProcs (进程)Memory (内存)Swap (交换)IO (磁盘 I/O)System (系统)CPU (处理器) pidstat标题行解释数据列解释 sar字段含义解释示例分析 总结 前言 菜就多练,昨天看了一篇有关剖析 RocksDB 内存超限问题的文…...
Vue2 基础
Vue 2 是 Vue.js 的第二个主要版本,于 2016 年发布。它是一个渐进式的 JavaScript 框架,以其简单、灵活、易用性高而广受欢迎。Vue 2 主要专注于构建用户界面(UI),并且非常适合用于构建单页应用(SPA&#x…...
递归问题(c++)
递归设计思路 数列递归 : 如果一个数列的项与项之间存在关联性,那么可以使用递归实现 ; 原理 : 如果一个函数可以求A(n),那么该函数就可以求A(n-1),就形成了递归调用 ; 注意: 一般起始项是不需要求解的,是已知条件 这就是一个典型…...
系统思考—战略决策
别用管理上的勤奋,来掩盖经营上的懒惰。 日本一家物业公司,因经营不善,面临生死存亡的危机。老板为了扭转局面,采取了很多管理手段——提高员工积极性,推行业绩与绩效挂钩,实施各种考核制度。然而…...
wxwidgets xml插入图片的两种方案
wxwidgets xml插入图片的两种方案: 1.使用wxWidgets中的wxRichTextCtrl插入图片,将wxRichTextCtrl的buffer导出为xml文件 参考richtextctrl例子 if (wxTheClipboard->IsSupported(wxDF_BITMAP)){wxBitmapDataObject data;wxTheClipboard->GetData(data);wxBitmap bi…...
大模型呼入机器人如何赋能呼叫中心?(转)
大模型呼入机器人如何赋能呼叫中心?(转) 原作者:开源呼叫中心FreeIPCC 大模型呼入机器人在赋能呼叫中心方面发挥着重要作用,主要体现在以下几个方面: 一、提升服务效率与质量 24小时不间断服务: 大模型呼入机器人能…...
linux下socket本地套接字通讯
使用套接字除了可以实现网络间不同主机间的通信外,还可以实现同一主机的不同进程间的通信,且建立的通信是双向的通信。socket进程通信与网络通信使用的是统一套接口,只是地址结构与某些参数不同。 用途 进程间通信:本地套…...
NDRCContextUnmarshall断点函数分析之I_RpcBindingCopy函数的作用
NDRCContextUnmarshall断点函数分析之I_RpcBindingCopy函数的作用 第一部分: void RPC_ENTRY NDRCContextUnmarshall ( // process returned context OUT NDR_CCONTEXT PAPI *phCContext,// stub context to update IN RPC_BINDING_HANDLE hRPC, …...
WebView2教程(基于C++)【一】环境初始化
创建一个VisualStudio C项目,通过NuGet包管理器安装两个包: 注意,在项目属性页设置项目使用:C 20,子系统设置成窗口(相应的预处理器也要改变),DPI识别设置成每个监视器高DPI识别。 …...
go语言中context的用法
0 概述 Context 是 Go 语言中非常重要的一个概念,它主要用于跨多个函数或 goroutine 传递 取消信号、超时控制、截止时间 和 请求范围数据。在并发编程中,Context 提供了更好的控制和管理,尤其是当你需要在多个 goroutine 之间传递状态或进行…...
概括网络给社会生活带来的种种影响
题目 【2002年国考申论】给定资料反映了网络给社会生活带来的种种影响,用不超过200字对这些影响进行概括。 要求:全面,有条理,有层次。(20分) 审题 特定事实:网络给社会生活带来的种种影响基本题型:单一…...
OpenCV相机标定与3D重建(16)将点从齐次坐标转换为非齐次坐标函数convertPointsFromHomogeneous()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::convertPointsFromHomogeneous 是 OpenCV 库中的一个函数,用于将点从齐次坐标(homogeneous coordinates)…...
Jmeter如何对UDP协议进行测试?
Jmeter如何对UDP协议进行测试? 1 jmeter-plugins安装2 UDP-Protocol Support安装3 UDP协议测试 1 jmeter-plugins安装 jmeter-plugins是Jmeter的插件管理器;可以组织和管理Jmeter的所有插件;直接进入到如下页面,选择如图的选项进…...
Unix 传奇 | 谁写了 Linux | Unix birthmark
注:本文为 “左耳听风”陈皓的 unix 相关文章合辑。 皓侠已走远,文章有点“年头”,但值得一阅。 文中部分超链已沉寂。 Unix 传奇 (上篇) 2010 年 04 月 09 日 陈皓 了解过去,我们才能知其然,更知所以然。总结过去…...
【网络】传输层协议UDP/TCP网络层IP数据链路层MACNAT详解
主页:醋溜马桶圈-CSDN博客 专栏:计算机网络原理_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.传输层协议 UDP 1.1 传输层 1.2 端口号 1.3 UDP 协议 1.3.1 UDP 协议端格式 1.3.2 UDP 的特点 1.3.3 面向数据报 1…...
RTMP推流平台EasyDSS在无人机推流直播安防监控中的创新应用
无人机与低空经济的关系密切,并且正在快速发展。2024年中国低空经济行业市场规模达到5800亿元,其中低空制造产业占整个低空经济产业的88%。预计未来五年复合增速将达到16.03%。 随着科技的飞速发展,公共安防关乎每一个市民的生命财产安全。在…...
ORACLE逗号分隔的字符串字段,关联表查询
使用场景如下: oracle12 以前的写法: selectt.pro_ids,wm_concat(t1.name) pro_names from info t,product t1 where instr(,||t.pro_ids|| ,,,|| t1.id|| ,) > 0 group by pro_ids oracle12 以后的写法: selectt.pro_ids,listagg(DIS…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
rknn toolkit2搭建和推理
安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 ,不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源(最常用) conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...
数据库正常,但后端收不到数据原因及解决
从代码和日志来看,后端SQL查询确实返回了数据,但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离,并且ai辅助开发的时候,很容易出现前后端变量名不一致情况,还不报错,只是单…...
高分辨率图像合成归一化流扩展
大家读完觉得有帮助记得关注和点赞!!! 1 摘要 我们提出了STARFlow,一种基于归一化流的可扩展生成模型,它在高分辨率图像合成方面取得了强大的性能。STARFlow的主要构建块是Transformer自回归流(TARFlow&am…...
【Java多线程从青铜到王者】单例设计模式(八)
wait和sleep的区别 我们的wait也是提供了一个还有超时时间的版本,sleep也是可以指定时间的,也就是说时间一到就会解除阻塞,继续执行 wait和sleep都能被提前唤醒(虽然时间还没有到也可以提前唤醒),wait能被notify提前唤醒…...
