在这篇文章中,我们将带领您了解基于MVC设计模式实战ExtJS4.2高级组件+SSH2在线投稿系统(主题皮肤、高级组件)的全貌,同时,我们还将为您介绍有关Android开发高级组件之自动完成文本框(A
在这篇文章中,我们将带领您了解基于MVC设计模式实战ExtJS4.2高级组件+SSH2在线投稿系统(主题皮肤、高级组件)的全貌,同时,我们还将为您介绍有关Android开发高级组件之自动完成文本框(AutoCompleteTextView)用法示例【附源码下载】、Android高级组件AutoCompleteTextView自动完成文本框使用详解、Android高级组件Gallery画廊视图使用方法详解、Antd-Crud v1.0.0 发布,一个基于 Antd 的增删改查高级组件的知识,以帮助您更好地理解这个主题。
本文目录一览:- 基于MVC设计模式实战ExtJS4.2高级组件+SSH2在线投稿系统(主题皮肤、高级组件)
- Android开发高级组件之自动完成文本框(AutoCompleteTextView)用法示例【附源码下载】
- Android高级组件AutoCompleteTextView自动完成文本框使用详解
- Android高级组件Gallery画廊视图使用方法详解
- Antd-Crud v1.0.0 发布,一个基于 Antd 的增删改查高级组件
基于MVC设计模式实战ExtJS4.2高级组件+SSH2在线投稿系统(主题皮肤、高级组件)
一、课程简介
1.1、课程背景
J2ee技术已经流行很多年了,在很多的B/S架构中之前都是jsp页面组成的。后来产生了很多的前台框架,或者称之为富客户端。Extjs就是其中之一,从起初的版本到extjs4.2版,extjs已经发展为一个成熟的框架了。在开发中被广泛的应用。
1.2、课程内容
主要内容是extjs4.2高级组件和MVC设计模式,通过一个简单的开发带领大家熟悉常用的高级组件以及extjs4.x的MVC设计模式的使用方式。后台采用的是struts2+spring+hibernate框架。课程偏重于extjs4.2框架,适合对extjs有一定基础的同学。
1.3、课程大纲
围绕在线投稿系统这个简单的小系统,搭建Extjs的MVC开发框架,前后台结合使用将常用的高级组件讲一遍
二、课程在实际开发中的应用
2.1 、企业中的应用
软件开发,目前好的岗位就是电信和金融方面的。在这两个方面,我们大多数用到的都是一些管理或者维护展示用的系统。如果每做一套系统,都需要开发一套美工页面的话,在很大程度上降低了开发效率,而且并不能保证每一套页面都能兼容市场上90%以上的浏览器,在界面展示方面也就是常见的那些,太高级的开发难度增加。
使用前台框架恰好解决了这个问题,降低了成本的同时还加快了开发效率,并且项目利于管理。多功能复杂的界面很轻松就能实现,几乎兼容市场上所有的浏览器,异步通信技术以及前端处理技术大大降低了服务器的压力,所以Extjs是很好的一个选择。
2.2 、学习的目标
关于前台的任意需求你都能够实现,你可以结合其他组件,但是前台框架只使用extjs框架。
2.3 、课程的特色
本课程主要是采用extjs的MVC设计模式,开发一个在线投稿系统,前台和后台独立分开,在实际开发应用中将常用的高级组件与大家分享。
1、在extjs中如何获取其他组件,尤其是在mvc设计模式中。
2、如何使用store动态传递参数,在翻页的同时也能够传递参数。
3、完美的创建我们自己的主题,真正的解决主题的问题。
2.4 、课程亮点:
亮点一、完全用ext4.2最新API完成,涉及到Extjs4.x全部最新特性
亮点二、完整演示extjs4.2+java框架技术ssh2+mysql数据库整合
亮点三、可以学习extjs4.2的mvc模式的经典企业应用
亮点四、了解并会使用extjs4.2的主题皮肤功能
亮点五、学习并掌握extjs4.2常见组件及高级组件的详细讲解与实例项目
亮点六、整个项目80%讲师全部手敲代码实现
亮点七、可以学习到如何在extjs4.2中使用插件与自定义组件技术
亮点八、整个项目是讲师原来内部企业在用的一个小项目,实用性和实战性很强,
学员拿到后,略加改动,便可用到自己的项目中。
三、学习建议
3.1 、时间安排
根据大家的时间,自行安排学习
3.2、 学习要求
Extjs框架很强大,但是也很不好学,由javascript为基础,通过编程的方式实现界面。对于初学者,首先要掌握Extjs的基本组件:数据模型、数据代理、事件机制,然后在将grid、tree、panel等高级组件学会,在学高级组件的同时注意组件功能的扩展。关键是自己要多练习,完全用extjs开发一个系统,如果你不去开发,你永远想象不到你遇到的问题。
每学习一课都要动手将代码打一遍。不要复制我的代码,自己动手会有更深刻的体会,加深自己的记忆。
3.3 、一些建议
学习别人的示例对于我们开发帮助会非常大,示例包括基本组件的应用、综合应用等多个方面。在此,简单推荐几个。
1、学好基础知识,然后掌握每一个高级组件。在Ext官方示例中提供了很详细的例子。在ext项目下载包的examples目录中,包括各个控件的基本应用演示,同时还有一些比较复杂的组合示例,有简有繁,非常适合初学者认真研究。
2、其它示例,在ext社区中还有很多比较优秀的ext应用示例,有些只是一个应用演示,虽然没有提供源码下载,但我们可以直接下载引用的js文件来得到这些示例的ext应用代码,同样能取起到非常好的学习效果。
四、学习后能做什么
基本上所有的前台你都可以实现了,extjs还可以将fusionchart(图表)等一系列的前台插件封装成一个extjs自己的对象。 在开发可以中完全按照extjs的编程方式进行开发。但是它不适合做网站,因为搜索引擎搜索不到你网站的信息。
五、一些常见的问题
1、extjs页面加载慢、运行不流畅
加载慢这个确实是个问题,在ie下比较明显,因为ie9之下不支持css3,而extjs4.x采用的是css3样式。当你使用ie浏览器的时候,那些华丽的颜色都是通过加载图片进行显示的,加载图片比加载一个颜色码(#23E59F)慢的多了,但是谷歌、火狐等浏览器就不存在这样的问题了。至于运行不流畅,不是前台的问题,有可能是extjs自身在请求数据的时候,服务器处理的慢,extjs自身反应是非常快的,除非你的电脑cpu使用率较高。
2、 颜色单一,页面容易产生审美疲劳
在extjs4.x之前,改变extjs的主题是一件很轻松的事情,而到了extjs4.x要改变extjs4.x的主题样式好像变的遥不可及了。主要是extjs4.x之后用的是css3样式,是通过sass编程的方式产生的。不过在本课程中,完美的解决了这个问题,你很轻的就可以设计出自己的主题。如果对窗体组件不满意也可以自定义窗体组件。
3、 Extjs不好有些功能不能实现
应该是你掌握的基础不够牢固,也有可能你是说的extjs4.x之前的。在extjs4.2技术方面已经相当的成熟了。之前的版本有些方法在api中已经提到了,但是用起来却不管用,这是extjs产品的不完善。在extjs4.2中这种情况已经很少了,也是不太重要的功能。
4、 我的项目太庞大了,使用它用户在使用的时候消耗太多的CPU
可以采用Extjs在前台处理数据,会消耗一定的内存,但是CPU不会长时间占用太多,如果占用多的话,浏览器会给出中止脚本运行的提示的。如果项目太庞大,建议不要一个页面处理所有的业务。可以采用多个页面,每一个大功能可以分成一个独立的页面。否则处理太多的数据extjs还是很消耗内存的。
软件的版本:
1. MyEclipse 8.5及以上
2. Hibernate3、struts 2.1.6、spring2.x
3. Ext-4.2.1.883
更多内容,敬请关注:http://url7.me/rpvE1
有兴趣的同学请加QQ群:2群:217108493 4群:275733010
Android开发高级组件之自动完成文本框(AutoCompleteTextView)用法示例【附源码下载】
本文实例讲述了Android开发高级组件之自动完成文本框(AutoCompleteTextView)用法。分享给大家供大家参考,具体如下:
通常来说自动完成文本框(AutoCompleteTextView)从EditText派生而出,实际上他也是一个编辑框,但他比普通的编辑框多了一个功能:当用户输入一定字符后,自动完成文本框会显示一个下拉菜单,供用户从中选择,当用户选择了某个菜单项过后,AutoCompleteTextView就会按用户选择自动填写该文本框。
自动完成文本框(AutoCompleteTextView),用于实现允许用户输入一定字符后,显示一个下拉菜单,供用户从中选择,当用户选择某个选项之后,按用户选择自动填写该文本框。
语法格式:
<AutoCompleteTextView 属性列表> </AutoCompleteTextView>
AutoCompleteTextView组件继承EditText,所以它支持EditText组件提供的属性,同时,该组件还有以下属性:
属性 | 功能 |
---|---|
android:completionHint | 下拉列表下面的说明性文字 |
android:completionThreshold | 弹出下来列表的最小字符个数 |
android:dropDownAnchor | 下拉列表的锚点或挂载点 |
android:dropDownHeight | 下拉列表高度 |
android:dropDownWidth | 下拉列表宽度 |
android:dropDownHorizontalOffset | 下拉列表距离左边的距离 |
android:dropDownVerticalOffset | 下拉列表距离上边的距离 |
android:dropDownSelector | 下拉列表被选中的行的背景 |
android:popupBackground | 下拉列表的背景 |
效果如下所示:
具体实现步骤:
界面布局 res/layout/main.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:background="#000000"> <AutoCompleteTextView android:layout_height="wrap_content" android:text="" android:id="@+id/autoCompleteTextView1" android:completionThreshold="2" android:completionHint="请输入内容" android:background="#333333" android:layout_marginLeft="10dp" android:layout_weight="7" android:layout_width="wrap_content" > </AutoCompleteTextView> <Button android:text="搜索" android:id="@+id/button0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginLeft="10dp"/> </LinearLayout>
MainActivity.java文件中:
首先设置保存下拉菜单列表项内容:
//此字符串是要在下拉菜单中显示的列表项 private static final String[] COUNTRIES=new String[]{"jb51","jb51编程小技巧","jb51脚本下载","jb51软件下载","www.jb51.net","编程小技巧"};
onCreate()
方法中获取自动完成文本框,并为自动完成文本框设置适配器,具体实现代码如下:
//获取自动完成文本框 final AutoCompleteTextView textView=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1); //注意ArrayAdapter与SimpleAdapter的区别 //创建一个ArrayAdapter适配器 ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,COUNTRIES); textView.setAdapter(adapter);//为自动完成文本框设置适配器
最后为搜索按钮添加事件监听器:
//为搜索按钮添加事件监听器 button.setonClickListener(new OnClickListener() { public void onClick(View arg0) { Toast.makeText(MainActivity.this,textView.getText().toString(),Toast.LENGTH_SHORT).show(); } });
附:完整实例代码点击此处本站下载。
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
Android高级组件AutoCompleteTextView自动完成文本框使用详解
自动完成文本框(AutoCompleteTextView),用于实现允许用户输入一定字符后,显示一个下拉菜单,供用户从中选择,当用户选择某个选项之后,按用户选择自动填写该文本框。
语法格式:
<AutoCompleteTextView
属性列表>
</AutoCompleteTextView>
AutoCompleteTextView组件继承EditText,所以它支持EditText组件提供的属性,同时,该组件还有以下属性:
android:completionHint 下拉列表下面的说明性文字
android:completionThreshold 弹出下来列表的最小字符个数
android:dropDownAnchor 下拉列表的锚点或挂载点
android:dropDownHeight 下拉列表高度
android:dropDownWidth 下拉列表宽度
android:dropDownHorizontalOffset 下拉列表距离左边的距离
android:dropDownVerticalOffset 下拉列表距离上边的距离
android:dropDownSelector 下拉列表被选中的行的背景
android:popupBackground 下拉列表的背景
下面实现带自动提示功能的搜索框:
效果如图所示:
具体实现:
res/layout/main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:background="#000000"> <AutoCompleteTextView android:layout_width="wrap_content" android:text="" android:id="@+id/autoCompleteTextView1" android:completionThreshold="2" android:completionHint="输入搜索内容" android:background="#FFFFFF" android:layout_marginLeft="10px" android:layout_weight="7" android:layout_height="wrap_content"> </AutoCompleteTextView> <Button android:text="搜索" android:id="@+id/button0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginLeft="10px"/> </LinearLayout>
界面效果如图:
MainActivity:
package com.example.test; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { //此字符串是要在下拉菜单中显示的列表项 private static final String[] COUNTRIES=new String[]{"HeNan","HeNan大学","HeNan理工大学","HeNan工业大学","HeNan万方科技学院","HeNan第二附属医院二院"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //获取自动完成文本框 final AutoCompleteTextView textView=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1); //注意ArrayAdapter与SimpleAdapter的区别 //创建一个ArrayAdapter适配器 ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,COUNTRIES); textView.setAdapter(adapter);//为自动完成文本框设置适配器 Button button=(Button)findViewById(R.id.button0);//获取"搜索"按钮 //为搜索按钮添加事件监听器 button.setonClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Toast.makeText(MainActivity.this,textView.getText().toString(),Toast.LENGTH_SHORT).show(); } }); } }
实现了自动补全,当打HeNan的时候,下面就会有补全信息。此功能在搜索应用上使用的比较广泛。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
Android高级组件Gallery画廊视图使用方法详解
画廊视图(gallery)表示,能够按水平方向显示内容,并且可用手指直接拖动图片移动,一般用来浏览图片,被选中的选项位于中间,并且可以响应事件显示信息。在使用画廊视图时,首先需要在屏幕上添加gallery组件,通常使用<gallery>标记在XML布局文件中添加。其基本语法如下:
<gallery
属性列表
>
</gallery>
gallery组件支持的XML属性表如下:
android:animationDuration 用于设置列表切换时的动画持续时间
android:gravity 用于设置对其方式
android:spacing 用于设置列表之间的间距
android:unselectedAlpha 用于设置没有选中的列表项的透明度
使用画廊视图,也需要使用Adapter提供要显示的数据。通常使用BaseAdapter类为gallery组件提供数据。下面通过一个具体的实例演示通过BaseAdapter适配器为gallery组件提供要显示的图片。
res/layout/main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:id="@+id/layout" android:gravity="center"> <gallery android:id="@+id/gallery1" android:spacing="5px" android:unselectedAlpha="0.6" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout>
在res/values目录中,创建一个名为attr.xml的文件,在该文件中定义一个styleable对象,用于组合多个属性。这里只指定了一个系统自带的android:galleryItemBackground属性,用于设置各选项的背景。具体代码如下:
res/values/attr.xml:
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="gallery"> <attr name="android:galleryItemBackground"/> </declare-styleable> </resources>
MainActivity:
package com.example.test; import android.app.Activity; import android.content.res.TypedArray; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.gallery; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); gallery gallery=(gallery)findViewById(R.id.gallery1); final int [] imageId=new int[]{R.drawable.img01,R.drawable.img02,R.drawable.img03,R.drawable.img04,R.drawable.img05,R.drawable.img06,R.drawable.img07,R.drawable.img08,R.drawable.img_top,R.drawable.ic_launcher,R.drawable.in,R.drawable.stop,};//定义并初始化保存图片id的数组 //创建并改写BaseAdapter适配器 BaseAdapter adapter=new BaseAdapter(){ @Override public View getView(int position,View convertView,ViewGroup parent) { ImageView imageView;//声明一个ImageView的对象 if(convertView==null){ imageView=new ImageView(MainActivity.this);//实例化ImageView对象 imageView.setScaleType(ImageView.ScaleType.FIT_XY);//设置缩放方式 imageView. setLayoutParams(new gallery.LayoutParams(180,135));//设置ImageView宽高 TypedArray typedArray=obtainStyledAttributes(R.styleable.gallery);//获取自定义属性对象 //为imageView设置背景图片的资源,使用了自定义属性对象typedArray获取自定义背景资源值 imageView.setBackgroundResource( typedArray.getResourceId(R.styleable.gallery_android_galleryItemBackground,0)); imageView.setPadding(5,5,0);//设置内边距 }else{ //如果以前new过View就使用convertView的缓存 imageView=(ImageView)convertView; } imageView.setimageResource(imageId[position]); return imageView; } //功能:获得当前选项的id @Override public long getItemId(int position) { return position; } //功能:获得当前选项 @Override public Object getItem(int position) { return position; } //获得数量 @Override public int getCount() { return imageId.length; } }; gallery.setAdapter(adapter); gallery.setSelection(imageId.length/2); gallery.setonItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent,View v,int position,long id) { Toast.makeText(MainActivity.this,"您选择了第"+String.valueOf(position)+"张图片",Toast.LENGTH_SHORT).show(); } }); } }
效果如图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
Antd-Crud v1.0.0 发布,一个基于 Antd 的增删改查高级组件

Antd-Crud
一个基于 React + Ant.Design 的增删改查组件。
特征
- 1、极轻量,只依赖于 Ant.Design 再无其他任何依赖
- 2、支持基本的【增删改查】和【批量删除】功能
- 3、支持搜索、自定义分页和自定义排序等功能
- 4、支持刷新、导出 Excel、数据打印、行高设置等功能
- 5、更多的 DIY 配置
已完成功能
- 基本增删改查
- 分页加载
- 搜索面板
- 搜索面板自动收缩
- 批量删除
- 数据刷新
- EXCEL 导出
- 行高设置
- 打印功能
开始使用
安装:
npm i @codeflex/antd-crud
function App() { const columns: ColumnsConfig<Account> = [ { title: ''姓名'', dataIndex: ''name'', key: ''name'', placeholder:"请输入姓名", supportSearch:true, render: (text) => <a>{text}</a>, }, { title: ''年龄'', dataIndex: ''age'', key: ''age'', supportSearch:true, }, { title: ''地址'', dataIndex: ''address'', key: ''address'', supportSearch:true, }, { title: ''标签'', key: ''tags'', dataIndex: ''tags'', supportSearch:true, render: (_, { tags }) => ( <> {tags.map((tag) => { let color = tag.length > 5 ? ''geekblue'' : ''green''; if (tag === ''loser'') { color = ''volcano''; } return ( <Tag color={color} key={tag}> {tag.toUpperCase()} </Tag> ); })} </> ), } ]; const data: Account[] = [ { key: ''1'', name: ''John Brown'', age: 32, address: ''New York No. 1 Lake Park'', tags: [''nice'', ''developer''], }, { key: ''2'', name: ''Jim Green'', age: 42, address: ''London No. 1 Lake Park'', tags: [''loser''], }, { key: ''3'', name: ''Joe Black'', age: 32, address: ''Sydney No. 1 Lake Park'', tags: [''cool'', ''teacher''], }, ]; const actions:Actions<Account> = { onCreate:(account)=>{ console.log("onCreate", account); } }; return ( <div style={{width:"960px"}}> <AntdCrud columns={columns} dataSource={data} actions={actions} pageNumber={1} pageSize={10} totalRow={2342}/> </div> ) }
ColumnConfig
类型说明:
ColumnConfig
继承了 Antd 的 Table 的 Column 的所有配置,参考:https://ant-design.antgroup.com/components/table-cn#column
在此基础上,增加了自己的配置:
- placeholder: 搜索框和编辑页面的占位内容
- supportSearch: 是否支持搜素
- form: 编辑表单的 form 设置,类型为
FormConfig
FormConfig
类型说明:
type FormConfig = { // 表单类型,默认为 Input, // 支持:Input、InputNumber、Hidden、Radio、Checkbox、Rate、 // Switch、DatePicker、Select、Slider、Upload type: string, //自定义属性,支持 antd 控件的所有属性配置 attrs?: any, //验证规则,只在编辑页面起作用 rules?: any[], }
Actions
类型说明:
Actions
是用于定义 AntdCrud 组件的监听方法
Actions
定义的类型如下:
type Actions<T> = { //获取数据列表 onFetchList?: (currentPage: number , pageSize: number , totalPage: number , searchParams: any , sortKey: string , sortType: "asc" | "desc") => void, //获取数据详情 onFetchDetail?: (row: T) => T, //删除单条数据 onDelete?: (row: T) => void, //批量删除数据 onDeleteBatch?: (rows: T[]) => void, //数据更新 onUpdate?: (row: T) => void, //数据创建 onCreate?: (row: T) => void, //初始化搜索框的值 onFormItemValueInit?:(key:string) => any }
需要用户在 Actions
定义以上方法,用于对数据进行操作或查询。
运行演示
git clone https://gitee.com/antdadmin/antd-crud.git cd antd-crud/example npm install npm run dev
AntdAdmin 简介
AntdAdmin 是一个以 React + Ant.Design 为基础的开源技术社群,其开源(或计划开源)的高级组件有:
- antd-crud:一个基于 React + Ant.Design 的增删改查高级组件(已开源)。
- antd-bpmn:一个基于 React + Ant.Design 的工作流设计组件(准备中...)。
- antd-builder:一个基于 React + Ant.Design 的拖拽设计组件(准备中...)。
关于基于MVC设计模式实战ExtJS4.2高级组件+SSH2在线投稿系统(主题皮肤、高级组件)的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Android开发高级组件之自动完成文本框(AutoCompleteTextView)用法示例【附源码下载】、Android高级组件AutoCompleteTextView自动完成文本框使用详解、Android高级组件Gallery画廊视图使用方法详解、Antd-Crud v1.0.0 发布,一个基于 Antd 的增删改查高级组件的相关信息,请在本站寻找。
本文标签: