首页 > 其他分享 >ZK----第七章 ZUML页面及XUL组件集

ZK----第七章 ZUML页面及XUL组件集

时间:2023-05-08 11:06:37浏览次数:33  
标签:控件 ZK image 对话框 ---- 组件 window XUL 属性


基本组件
Label组件:89
用来显示一段文字

<label  value=”hello”/>


属性:pre、hyphen、maxlength、multiline

 

 

按钮组件:90
两种:button和toolbarbutton
属性:
 Label:名称、image:按钮显示的图像、(dir:控制label和image的显示位置,orient:控制布局为横向或纵向)
<button  label=”left” image=”/img/folder.gif” dir=”reverse” orient=”vertical”  width=”125px”/>

事件:
onClick:指定一个监听器
href:指定一个URL
如果都指定,href属性有更高的优先级,也就是说onClick事件不会被发送

<button  onClick=”do()”/>
<button  href=”/another_page.zul”/> 等价于下面的 (在客户端处理)
<button  onClick=”Excutions.sendRedirect(" another.zul ")”/>(转到服务器端处理)

 

 

单选或单选组:
一个单选按钮是可以被打开或关闭的组件;
单选按钮可以被分组,成为radiogroup;同一组同一时间仅有一个按钮被选中

<radio  label=”单个”/>
<radiogroup  onCheck=”alert(self.selectedItem.label)”>
 <radio  label=”1”/>
 <radio  label=”2”/>
 <radio  label=”3”/>
</radiogroup>

 

图像:92
静态图像:

<image  src=”/some/my.jpg”/>


动态图像:使用setContent方法为image组件指定图像内容,图像会在浏览器端动态更新

Location: <textbox  onChange=”updateMap(self.value)”/>
Map:   <image  id=”image”/>
<zscript>
 Void  updateMap(String location) {
  If (location.length() > 0)  image.setContent (new  MapImage(location));
 }
</zscript>

音频:95
Audio组件用来在浏览器端播放音频。像image一样,可以使用src属性指定音频的URL或使用setContent方法指定动态生成的音频

 

 

输入控件:95
Textbox
Intbox
Decimalbox
Doublebox
Datebox
Combobox
Bandbox

属性:
Type:可以为textbox组件指定值为password的type属性,这样不显示用户输入的内容
         

Username: <textbox/>
           Password: <textbox  type=”password”/>
Format:可以控制输入控件的格式,默认为null。对于datebox,意味着yyyy/MM/dd
          <datebox  format=”MM/dd/yyyy”/>

          可以动态的改变格式,如下:
         

<datebox  id=”db”/>
         <button  label=”set MM-dd-yyyy” onClick=”db.setFormat(" MM-dd-yyyy ")”/>
Constraint:控制输入控件的值。
        no positive,no negative,no zero适用于Intbox和decimalbox;        no past,no today适用于datebox;no empty适用于任何组件;

        正则表达式仅适用于字符串类型组件,如textbox,combobox和bandbox
datebox的特殊约束:支持一个日期范围
      

<datebox  constraint=”between  20071225 and 20071203”/>
       <datebox  constraint=”before    20071225”/>
       <datebox  constraint=”after     20071225”/>


定制属性:(实现了org.zkoss.zul.Constraint接口 98页)

onChange事件:
当用户改变了输入控件的内容,输入控件会使用onChange事件通知应用程序
onChanging事件:
当用户正在改变输入控件的内容时,输入控件使用onChanging事件通知应用程序
要获取用户输入的内容,如下方式访问事件的value属性:

<grid>
  <rows>
   <row> <textbox  onChanging=”copy.value=event.value”/> </row>
   <row> <textbox  id=”copy”  readonly=”true”/>   </row>
  </rows>
 </grid>

 

日历组件:
Calendar展示了一个日历并允许用户从中选择一个日期

<hbox>
 <calendar  id=”cal”  onChange=”in.value=cal.value”/>
 <datebox   id=”in”  onChange=”cal.value=in.value”/>
</hbox>


属性:
 Value:设置及获取选中的日期
 Compact:ture/false,默认值为本地

 

 

进度条:

<progressmeter  value=”10”/>


属性:
 Value:必须在0到100的范围内取值

 

 

Slider组件:
以滚动方式来指定值

<slider  id=”slider”  onScroll=”Audio.setVolume(slider.curpos)”/>
Slider接收在0到100范围内的值,可使用maxpos属性来改变允许的最大值

 

 

计时器:
Timer是一个不可见的组件,用于在指定的时刻或一段时间内将onTimer事件发送到服务器,可使用start和stop方法控制timer

<window  title=”Timer demo”  border=”normal”>
 <label  id=”now”/>
 <timer  id=”timer”  delay=”1000”  repeats=”true”  onTimer=”now.setValue(new  Date().toString())”/>
 <button  label=”Stops timer”  onClick=”timer.stop()”/>
 <button  label=”Starts timer”  onClick=”timer.start()”/>
</window>

 

 

分页:

<paging  totalSize=”100”  pageSize=”20”/>
Listbox和grids都支持paging

 

窗口:104
Window像HTML中的DIV用于为组件分组,不同于其他组件
1. window是一个ID空间所有者,可包含任意组件包括自身,如果通过标识指定,可使用getFellow方法找到
2. window可被重叠,弹出和嵌入
3. window可以是对话框

<window  id=”win”  title=”窗口”  border”normal”  width=”350px”>
 <caption  image=”/img/coffee.gif”  label=”你好”/>
 <toolbar>
  <toolbarbutton  label=”save”/>
  <toolbarbutton  label=”cancel”/>
 </toolbar>
 请单选:
 <radiogroup>
  <radio  label=”ZK”/><radio  label=”JSF”/>
 </radiogroup>
 请选择:
 <checkbox  label=”hello,world”/>
</window>属性:
Closable:设为true,close按钮会显示在window组件中,这样可以关闭window
Sizable:允许用户重定义window大小,设为true,用户可拖曳边框改变其大小
Sclass:  ZK支持四种样式:embedded,overlapped,popup,wndcyan
ContentStyle:可改变window中内容块
 <window  title=”hello”  border=”normal”  contentStyle=”background:yellow”>背景颜色
<window  title=”hello”  border=”normal”  contentStyle=”overflow:auto”>滚动条
Border:是否显示边框,默认的样式仅支持normal和none

 

弹出框模式:108页
Position:控制重叠/弹出/modal的位置 

通用对话框
消息框:

Alert(“Wrong”);========Messagebox.show(“Wrong”);

 

 

文件上传对话框:

<button  label=”upload”>
 <attribute  name=”onClick”>
  {
   Object  media = Fileupload.get();
   If (media instanceof  org.zkoss.image.Image) image.setContent(media);
   else if (media != null)  Messagebox.show(
“not an image:”+media,”Error”,Messagebox.OK ,Messagebox.ERROR);
  }
 </attribute>
</button>


一次上传多个文件对话框:

Fileupload组件:
Fileupload不是一个modal对话框,是一个组件,所以可以和其他组件一起插入文字间
注:除了静态的get方法用于打开文件上传对话框,org.zkoss.zul.Fileupload本身为一个组件

<fileupload  onUpLoad=”img.setContent(event.media)”/>

事件:
onUpload:按下上传按钮后,onUpload事件及UploadEvent事件的一个实例被送出,可以使用getMedia或getMedias方法获取上传文件的内容
onClose:如果此事件实现定制行为,fileupload组件会失效,即所有的域会被清空或重设

 

 

下载对话框

<button  label=”download”>
 <attribute  name=”onClick”>
  {
   Java.io.InputStream  is = 
desktop.getWebApp().getResourceAsStream(“/download.html”);
   if (is != null)  Filedownload.save(is ,”text/html” , “download.html”);
   else alert(“/download.html not found”);
  }
 </attribute>
</button>

 

 

 

 

 

 

 

 

标签:控件,ZK,image,对话框,----,组件,window,XUL,属性
From: https://blog.51cto.com/iwtxokhtd/6253136

相关文章

  • 在cmd中运行javac编译java文件报错: 编码GBK的不可映射字符、 非法字符: \65279
    操作背景:我在eclipse建立了个HelloWorld.java文件,格式UTF-8,然后复制保存到C:\Users\alex\test目录下,在此处运行按住Shift+右键调出cmd命令窗口,输入命令:javac HelloWorld.java,然后报错:HelloWorld.java:6:错误:编码GBK的不可映射字符解决办法:方法一:带上编码utf-8,运行命令:javac-e......
  • 了解Redis过期策略及实现原理
    大约阅读4分钟如果你使用过redis,那你一定知道过期策略这个命令吧,如果让你设计一个过期键接口,你有什么想法?我们在使用redis时,一般会设置一个过期时间,当然也有不设置过期时间的,也就是永久不过期。当我们设置了过期时间,redis是如何判断是否过期,以及根据什么策略来进行删除的。redi......
  • volatile关键字的作用
    大约阅读3分钟引言:以前只是看过介绍volatile的文章,对其的理解也只是停留在理论的层面上,由于最近在项目当中用到了关于并发方面的技术,所以下定决心深入研究一下java并发方面的知识。网上关于volatile的文章非常多,但是并没有讲解非常详细的文章。(哪位要是有好的资料麻烦共享一份给......
  • elasticsearch7.x 插件安装异常
     (本博客近期所有es文章都是基于elasticsearch7.1.0),请选择Plugin[analysis-pinyin]wasbuiltforElasticsearchversion7.1.1butversin明显是版本号不一致,解决:进入vimelasticsearch-7.1.0/plugins/pinyin/plugin-descriptor.properties修改为elasticsearch对应版本,重新启动E......
  • 多通道振弦传感器无线采集仪蓝牙功能的使用
    多通道振弦传感器无线采集仪蓝牙功能的使用无线采集仪内置了蓝牙通讯功能,制式为ISMBandV5.1BLE。可以使用无线采集仪支持的通讯协议经由蓝牙接口完成无线采集仪访问(参数读取、设置,实时数据获取等)。配对码为0000或者1234。以手机为例说明。(1)下载并安装APP在任意的手......
  • (非root权限)java环境配置
     打开文件:vim~/.bashrc 末尾添加配置:exportJAVA_HOME=/usr/share/jdk8exportPATH=$JAVA_HOME/bin:$PATHexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar更新:source~/.bashrc(更新路径) ......
  • 国内加速访问Github的办法,超级简单
    [toc]前言GitHub相信大家都不陌生,开源世界中的绝对王牌,说它是中小型互联网公司的基石也不为过。但是国内因为某些的原因导致git相关操作都很慢,GitHub在国内访问速度慢的问题原因有很多,但最直接和最主要的原因是GitHub的分发加速网络的域名遭到dns污染。慢当然是每个攻城狮都......
  • docker 打包 springboot 项目快速入门
    >收藏不点赞,表示很遗憾docker打包springboot项目快速入门文末源码@[toc]1.构建Sringboot工程新建项目创建接口packagecom.wangshiyu.javapub.demo.springbootdocker.controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframewor......
  • 数据库连接池到底应该设多大?
    >阅读大约3分钟,颠覆认知[toc]前言本文内容95%译自这篇文章:https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing我在研究HikariCP(一个数据库连接池)时无意间在HikariCP的Githubwiki上看到了一篇文章(即前面给出的链接),这篇文章有力地消除了我一直以来的疑虑,看完......
  • POI导出EXCEL经典实现
    1.ApachePOI简介ApachePOI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对MicrosoftOffice格式档案读和写的功能。.NET的开发人员则可以利用NPOI(POIfor.NET)来存取POI的功能。2.POI结构HSSF-提供读写MicrosoftExcelXLS格式档案的功能。XSSF-提供读写Micr......