当前位置: 首页 > news >正文

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

给定一个由不同的小写字母组成的字符串&#xff0c;输出这个字符串的所有全排列。 我们假设对于小写字母有 a<b<…<y<z &#xff0c;而且给定的字符串中的字母已经按照从小到大的顺序排列。 输入格式 输入只有一行&#xff0c;是一个由不同的小写字母组成的字符串…...

linux内存相关命令的尝试

文章目录 前言freeMem 部分的解释Swap 部分的解释 vmstatProcs (进程)Memory (内存)Swap (交换)IO (磁盘 I/O)System (系统)CPU (处理器) pidstat标题行解释数据列解释 sar字段含义解释示例分析 总结 前言 菜就多练&#xff0c;昨天看了一篇有关剖析 RocksDB 内存超限问题的文…...

Vue2 基础

Vue 2 是 Vue.js 的第二个主要版本&#xff0c;于 2016 年发布。它是一个渐进式的 JavaScript 框架&#xff0c;以其简单、灵活、易用性高而广受欢迎。Vue 2 主要专注于构建用户界面&#xff08;UI&#xff09;&#xff0c;并且非常适合用于构建单页应用&#xff08;SPA&#x…...

递归问题(c++)

递归设计思路 数列递归 : 如果一个数列的项与项之间存在关联性&#xff0c;那么可以使用递归实现 ; 原理 : 如果一个函数可以求A(n)&#xff0c;那么该函数就可以求A(n-1)&#xff0c;就形成了递归调用 ; 注意: 一般起始项是不需要求解的&#xff0c;是已知条件 这就是一个典型…...

系统思考—战略决策

别用管理上的勤奋&#xff0c;来掩盖经营上的懒惰。 日本一家物业公司&#xff0c;因经营不善&#xff0c;面临生死存亡的危机。老板为了扭转局面&#xff0c;采取了很多管理手段——提高员工积极性&#xff0c;推行业绩与绩效挂钩&#xff0c;实施各种考核制度。然而&#xf…...

wxwidgets xml插入图片的两种方案

wxwidgets xml插入图片的两种方案: 1.使用wxWidgets中的wxRichTextCtrl插入图片,将wxRichTextCtrl的buffer导出为xml文件 参考richtextctrl例子 if (wxTheClipboard->IsSupported(wxDF_BITMAP)){wxBitmapDataObject data;wxTheClipboard->GetData(data);wxBitmap bi…...

大模型呼入机器人如何赋能呼叫中心?(转)

大模型呼入机器人如何赋能呼叫中心&#xff1f;(转) 原作者&#xff1a;开源呼叫中心FreeIPCC 大模型呼入机器人在赋能呼叫中心方面发挥着重要作用&#xff0c;主要体现在以下几个方面&#xff1a; 一、提升服务效率与质量 24小时不间断服务&#xff1a; 大模型呼入机器人能…...

linux下socket本地套接字通讯

使用套接字除了可以实现网络间不同主机间的通信外&#xff0c;还可以实现同一主机的不同进程间的通信&#xff0c;且建立的通信是双向的通信。socket进程通信与网络通信使用的是统一套接口&#xff0c;只是地址结构与某些参数不同。 用途 进程间通信&#xff1a;本地套…...

NDRCContextUnmarshall断点函数分析之I_RpcBindingCopy函数的作用

NDRCContextUnmarshall断点函数分析之I_RpcBindingCopy函数的作用 第一部分&#xff1a; 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项目&#xff0c;通过NuGet包管理器安装两个包&#xff1a; 注意&#xff0c;在项目属性页设置项目使用&#xff1a;C 20&#xff0c;子系统设置成窗口&#xff08;相应的预处理器也要改变&#xff09;&#xff0c;DPI识别设置成每个监视器高DPI识别。 …...

go语言中context的用法

0 概述 Context 是 Go 语言中非常重要的一个概念&#xff0c;它主要用于跨多个函数或 goroutine 传递 取消信号、超时控制、截止时间 和 请求范围数据。在并发编程中&#xff0c;Context 提供了更好的控制和管理&#xff0c;尤其是当你需要在多个 goroutine 之间传递状态或进行…...

概括网络给社会生活带来的种种影响

题目 【2002年国考申论】给定资料反映了网络给社会生活带来的种种影响&#xff0c;用不超过200字对这些影响进行概括。 要求&#xff1a;全面&#xff0c;有条理&#xff0c;有层次。(20分) 审题 特定事实&#xff1a;网络给社会生活带来的种种影响基本题型&#xff1a;单一…...

OpenCV相机标定与3D重建(16)将点从齐次坐标转换为非齐次坐标函数convertPointsFromHomogeneous()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::convertPointsFromHomogeneous 是 OpenCV 库中的一个函数&#xff0c;用于将点从齐次坐标&#xff08;homogeneous coordinates&#xff09;…...

Jmeter如何对UDP协议进行测试?

Jmeter如何对UDP协议进行测试&#xff1f; 1 jmeter-plugins安装2 UDP-Protocol Support安装3 UDP协议测试 1 jmeter-plugins安装 jmeter-plugins是Jmeter的插件管理器&#xff1b;可以组织和管理Jmeter的所有插件&#xff1b;直接进入到如下页面&#xff0c;选择如图的选项进…...

Unix 传奇 | 谁写了 Linux | Unix birthmark

注&#xff1a;本文为 “左耳听风”陈皓的 unix 相关文章合辑。 皓侠已走远&#xff0c;文章有点“年头”&#xff0c;但值得一阅。 文中部分超链已沉寂。 Unix 传奇 (上篇) 2010 年 04 月 09 日 陈皓 了解过去&#xff0c;我们才能知其然&#xff0c;更知所以然。总结过去…...

【网络】传输层协议UDP/TCP网络层IP数据链路层MACNAT详解

主页&#xff1a;醋溜马桶圈-CSDN博客 专栏&#xff1a;计算机网络原理_醋溜马桶圈的博客-CSDN博客 gitee&#xff1a;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在无人机推流直播安防监控中的创新应用

无人机与低空经济的关系密切&#xff0c;并且正在快速发展。2024年中国低空经济行业市场规模达到5800亿元&#xff0c;其中低空制造产业占整个低空经济产业的88%。预计未来五年复合增速将达到16.03%。 随着科技的飞速发展&#xff0c;公共安防关乎每一个市民的生命财产安全。在…...

ORACLE逗号分隔的字符串字段,关联表查询

使用场景如下&#xff1a; oracle12 以前的写法&#xff1a; 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 以后的写法&#xff1a; selectt.pro_ids,listagg(DIS…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...