首页 文章 精选 留言 我的

精选列表

搜索[表格控件],共10000篇文章
优秀的个人博客,低调大师

jquery datetimepicker日期时间控件

<script type="text/javascript" src="/static/scripts/jquery/jquery-1.7.1.js"></script> <script src="/static/scripts/datetime/jquery-ui-1.12.1/jquery-ui.min.js"></script> <link href="/static/scripts/datetime/jquery-ui-1.12.1/jquery-ui.min.css" rel="stylesheet" /> <script src="/static/scripts/datetime/jQuery-Timepicker/dist/jquery-ui-timepicker-addon.min.js"></script> <script type="text/javascript" src="/static/scripts/datetime/jQuery-Timepicker/dist/i18n/jquery-ui-timepicker-zh-CN.js"></script> <link href="/static/scripts/datetime/jQuery-Timepicker/dist/jquery-ui-timepicker-addon.min.css" rel="stylesheet" /> <script type="text/javascript"> (function($) { $(function() { $.datepicker.regional['zh-CN'] = { changeMonth: true, changeYear: true, clearText: '清除', clearStatus: '清除已选日期', closeText: '关闭', closeStatus: '不改变当前选择', prevText: '<上月', prevStatus: '显示上月', prevBigText: '<<', prevBigStatus: '显示上一年', nextText: '下月>', nextStatus: '显示下月', nextBigText: '>>', nextBigStatus: '显示下一年', currentText: '今天', currentStatus: '显示本月', monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'], monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], monthStatus: '选择月份', yearStatus: '选择年份', weekHeader: '周', weekStatus: '年内周次', dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'], dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'], dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'], dayStatus: '设置 DD 为一周起始', dateStatus: '选择 m月 d日, DD', dateFormat: 'yy-mm-dd', firstDay: 1, initStatus: '请选择日期', isRTL: false }; }); $(function() { $.datepicker.setDefaults($.datepicker.regional['zh-CN']); $("#kssj").datetimepicker(); $("#jssj").datetimepicker(); }); }(jQuery)); </script>

优秀的个人博客,低调大师

QTQuick控件基础(3)视图

1、spliteview 2、stackview ApplicationWindow {visible:truewidth:640height:480MouseArea{anchors.fill:parentacceptedButtons:Qt.LeftButton|Qt.RightButton|Qt.MiddleButtononClicked:{if(mouse.button===Qt.LeftButton ){stackView.push([blueView,greenView,yellowView]);}elseif(mouse.button===Qt.RightButton){stackView.pop();}else{stackView.push({item:orangeView,replace:ture})}}}Rectangle {id:blueView;color:"blue"}Rectangle {id:greenView;color:"green"}Rectangle {id:yellowView;color:"yellow"}Rectangle {id:orangeView;color:"orange"}StackView{id:stackViewanchors.fill:parentinitialItem:Item{id:redViewRectangle{anchors.fill:parent;color:"red"}}}} 3、messagedialog ApplicationWindow {visible: truewidth: 640height: 480Button{id:windowwidth: 300height: 300anchors.centerIn: parentonClicked: messageDialog.open()}MessageDialog{id:messageDialogtitle:"注意注意"text: "欢迎使用QTQuick"detailedText: "这里是具体文字"icon:StandardIcon.QuestionstandardButtons: StandardButton.Yes|StandardButton.Help|StandardButton.OpenonYes: {}onHelp: {}onAccepted: {}}} 来自为知笔记(Wiz) 目前方向:图像拼接融合、图像识别 联系方式:jsxyhelu@foxmail.com

优秀的个人博客,低调大师

Android:UI控件ViewPager,notifyDataSetChanged

ViewPager的使用: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 public class MainActivity extends Activity { /* *XML添加viewpager方法: *<android.support.v4.view.ViewPager *android:id="@+id/viewPager" *android:layout_width="match_parent" *android:layout_height="match_parent"/> */ int []ImageIds= new int [] {R.drawable.guide_daily_brand,R.drawable.guide_item_detail_1,R.drawable.guide_item_detail_2,R.drawable.guide_multi_shop_detail, R.drawable.guide_pic_mode,R.drawable.guide_timeline_filter}; private ArrayList<View>mViewList= new ArrayList<View>(); @Override protected void onCreate(BundlesavedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); ViewPagerviewPager=(ViewPager)findViewById(R.id.viewPager); viewPager.setAdapter( new PagerAdapter() { @Override public ObjectinstantiateItem(Viewcontainer, int position) { //第一页和最后一页只创建保留两个view来复用,中间则保留三个view LayoutInflaterinflater=getLayoutInflater(); Viewlayout=inflater.inflate(R.layout.pager_item, null ); //将View加入到容器和container里面,不加判断会造成泄漏 if (mViewList.size()<ImageIds.length) { mViewList.add(layout); } ((ViewPager)container).addView(layout, 0 ); layout.setBackgroundResource(ImageIds[position]); return layout; } @Override public void destroyItem(Viewcontainer, int position,Objectobject) { //此处的position与上面的并不相等,会自动销毁不在当前页左右的view ((ViewPager)container).removeView(mViewList.get(position)); } @Override public boolean isViewFromObject(Viewarg0,Objectarg1) { return arg0==arg1; //判断对象与类型 } @Override public int getCount() { return ImageIds.length; } }); } @Override public boolean onCreateOptionsMenu(Menumenu) { getMenuInflater().inflate(R.menu.main,menu); return true ; } } 其他笔记: 1.viewpager切换时容易造成oom问题 1 2 3 4 5 6 mViewPager=(ViewPager)findViewById(R.id.photogallery_viewpager); mAdapter= new PhotoGalleryAdapter(); //限制view的数量,减少view缓存,在setAdapter之前使用 mViewPager.setOffscreenPageLimit( 3 ); mViewPager.setAdapter(mAdapter); mViewPager.setCurrentItem(mPagerSelected); 2.两种removeview方法 1 2 3 4 5 6 @Override public void destroyItem(Viewcontainer, int position,Objectobject) { //((ViewPager)container).removeView((View)object); ((ViewPager)container).removeView(mViewList.get(position)); } 3.关于notifyDataSetChanged()方法无法及时更新的问题解决方法 (1)销毁ViewItem时要使用以下方法: 1 2 3 4 5 6 @Override public void destroyItem(Viewcontainer, int position,Objectobject) { //((ViewPager)container).removeView(mViewList.get(position)); ((ViewPager)container).removeView((View)object); } 参考资料:http://www.myexception.cn/android/417891.html (2)重写notifyDataSetChanged()和getItemPosition(Object object)方法,代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 private int mChildCount= 0 ; @Override public void notifyDataSetChanged() { mChildCount=getCount(); super .notifyDataSetChanged(); } @Override public int getItemPosition(Objectobject) { if (mChildCount> 0 ) { mChildCount--; return POSITION_NONE; } return super .getItemPosition(object); } 参考资料:http://www.cnblogs.com/maoyu417/p/3740209.html 附相关注释: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 进入viewpager,我们终于找到了viewpager中控制数据变更的重点方法dataSetChanged,这个方法如下: void dataSetChanged(){ //Thismethodonlygetscalledifourobserverisattached,somAdapterisnon-null. boolean needPopulate=mItems.size()<mOffscreenPageLimit* 2 + 1 && mItems.size()<mAdapter.getCount(); int newCurrItem=mCurItem; boolean isUpdating= false ; for ( int i= 0 ;i<mItems.size();i++){ final ItemInfoii=mItems.get(i); final int newPos=mAdapter.getItemPosition(ii.object); if (newPos==PagerAdapter.POSITION_UNCHANGED){ continue ; } if (newPos==PagerAdapter.POSITION_NONE){ mItems.remove(i); i--; if (!isUpdating){ mAdapter.startUpdate( this ); isUpdating= true ; } mAdapter.destroyItem( this ,ii.position,ii.object); needPopulate= true ; if (mCurItem==ii.position){ //Keepthecurrentiteminthevalidrange newCurrItem=Math.max( 0 ,Math.min(mCurItem,mAdapter.getCount()- 1 )); needPopulate= true ; } continue ; } if (ii.position!=newPos){ if (ii.position==mCurItem){ //Ourcurrentitemchangedposition.Followit. newCurrItem=newPos; } ii.position=newPos; needPopulate= true ; } } if (isUpdating){ mAdapter.finishUpdate( this ); } Collections.sort(mItems,COMPARATOR); if (needPopulate){ //Resetourknownpagewidths;populatewillrecomputethem. final int childCount=getChildCount(); for ( int i= 0 ;i<childCount;i++){ final Viewchild=getChildAt(i); final LayoutParamslp=(LayoutParams)child.getLayoutParams(); if (!lp.isDecor){ lp.widthFactor= 0 .f; } } setCurrentItemInternal(newCurrItem, false , true ); requestLayout(); } } 重点看这样一行代码: final int newPos=mAdapter.getItemPosition(ii.object); if (newPos==PagerAdapter.POSITION_UNCHANGED){ continue ; } 官方对getItemPosition()的解释是: Calledwhenthehostviewisattemptingtodetermine if anitem’spositionhaschanged.ReturnsPOSITION_UNCHANGED if thepositionofthegivenitemhasnotchangedorPOSITION_NONE if theitemisnolongerpresentintheadapter. The default implementationassumesthatitemswillneverchangepositionandalwaysreturnsPOSITION_UNCHANGED. 意思是如果item的位置如果没有发生变化,则返回POSITION_UNCHANGED。如果返回了POSITION_NONE,表示该位置的item已经不存在了。默认的实现是假设item的位置永远不会发生变化,而返回POSITION_UNCHANGED 解决方案: 所以我们可以尝试着修改适配器的写法,覆盖getItemPosition()方法,当调用notifyDataSetChanged时,让getItemPosition方法人为的返回POSITION_NONE,从而达到强迫viewpager重绘所有item的目的。 本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1224648,如需转载请自行联系原作者

优秀的个人博客,低调大师

TextView控件的使用(KongJian)

设置TextView的字体大小,推荐使用sp,如:15sp 设置高度宽度的时用:dp,如:15dp dp与密度无关,sp不仅与密度无关,还与scale尺度无关。 因为写多了格式就恶心了,所以直接截图了,希望朋友们能看清,不好意思啦,刚写这个,格式不太好看,包涵,以下的图片一页看不下的,可以点击之后查看大图哦 textColor:改变字体颜色 autoLink:超链接,很经典的用法,牛呀。。。 在类文件中:TextView tv = (TextView)findViewById(R.id.XXX); Tv.setText(Html.fromHtml("欢迎大家访问:<font color = blue>www.baidu.com</font>"));可改变局部方法。 在setText时,里面的字符串中可以包括“/n”换行哦 文本信息跑马灯效果: 加了以上四个属性后,此效果不会出现,还得加一句间行显示模式:android:singleLine="true";即可 本文转自华华世界 51CTO博客,原文链接: http://blog.51cto.com/mzh3344258/733357 ,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android Spinner控件的使用

1、UI文件:spinner.xml <?xml version= "1.0" encoding= "utf-8" ?> <LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android" android:layout_width= "match_parent" android:layout_height= "match_parent" android:orientation= "vertical" > <TextView android:id= "@+id/textView1" android:layout_width= "fill_parent" android:layout_height= "wrap_content" android:text= "TextView" /> <Spinner android:id= "@+id/spinner1" android:layout_width= "fill_parent" android:layout_height= "wrap_content" android:drawSelectorOnTop= "true" android:prompt= "@string/city_message" /> </LinearLayout> 2、SpinnerAcitivity.java文件 public class SpinnerActivity extends Activity{ private Spinner spinner; private static final String[] CITY = { "Spinner Item1" , "Spinner Item2" , "Spinner Item3" , "Spinner Item4" }; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.spinner); spinner = (Spinner) findViewById(R.id.spinner1); ArrayAdapter<String> adapter = new ArrayAdapter<String>( this ,android.R.layout.simple_spinner_item,CITY); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener(){ public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { Toast.makeText(SpinnerActivity. this , CITY[arg2], Toast.LENGTH_SHORT).show(); } public void onNothingSelected(AdapterView<?> arg0){} }); } } 3. 效果图。 使用模拟器。 本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2013/03/07/2948605.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

html--表格高亮显示

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script type="text/javascript"> function changeColor(id,flag){ if(flag=="over"){ document.getElementById(id).style.backgroundColor="red"; }else if(flag=="out"){ document.getElementById(id).style.backgroundColor="white"; } } </script> </head> <body> <table border="1px" width="100px" height="100px" align="center"> <thead> <tr onmouseover="changeColor('t1','over')" onmouseout="changeColor('t1','out')" id="t1"> <th>d</th> <th>dx</th> </tr> </thead> <tbody> <tr onmouseover="changeColor('t2','over')" onmouseout="changeColor('t2','out')" id="t2"> <td>s1</td> <td>s2</td> </tr> <<tr onmouseover="changeColor('t3','over')" onmouseout="changeColor('t3','out')" id="t3"> <td>s3</td> <td>s4</td> </tr> </tbody> <table> </body> </html>

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册