|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点
列表在任何一门开辟言语中都占据十分主要的位置,在.Net中有GridView,在extjs中有GridPanel。。。,而在javaSwing中,它的名字叫JTable。这两天在研讨JTable的利用,也有一些劳绩,以是在这里跟人人分享交换一下,上面的内容将包含:1)JTable的基础用法;2)如何为JTable增加行点击呼应事务,双击后翻开窗口;3)如何为JTable的行增加标识,如行id等;4)如何在JTable中静态增加新行;
1)JTable的基础用法:
我用的IDE是NetBeans,因为也是复杂做几个页面的客户端,次要仍是Web开辟的,以是临时不盘算穷究javawinform开辟,以是界面怎样快就怎样做了,我间接在窗体的“计划”形式下间接拖“表格”出来就了事,在默许的情形下,这个表格还会有几行几列的添补内容的,假如必要编纂,能够先点击表格进进它的编纂形态,然后右击,选择“表内容”就能够举行表格的行和列的编纂了,不外一般情形下,表格的内容都是静态天生的,以是在控件上间接编纂它的内容的意义是不年夜的,固然,做DEMO时对照有效。
如何为JTable初始化内容呢?我的习气是在frame的机关办法来完成,实在经由过程查API能够得知,JTable撑持多种机关办法,而我以为静态天生数据来讲,用Vector对象的情势来天生列头设置及数据设置是对照复杂直不雅的办法,上面来看个例子:- String[]columnModel={"工夫","编号","金额","操纵员"};
- VectorcmVector=newVector();
- for(inti=0,cmCount=columnModel.length;i<cmCount;i++){
- cmVector.addElement(columnModel[i]);
- }
- //绘制数据模子
- VectordataVector=newVector();
- TempOrdersListtempOrderList=TempOrdersManager.getInstance().getList();
- intbillCount=tempOrderList.size();
- if(billCount>0){
- for(intj=0;j<billCount;j++){
- TempOrdersorderItem=(TempOrders)tempOrderList.get(j);
- Stringid=orderItem.getId();
- Stringtime=orderItem.getTime();
- Stringno=orderItem.getNo();
- floattotal=orderItem.getTotal();
- Stringuser=orderItem.getUser();
- CustomTableCellidCell=newCustomTableCell(id,no,orderItem);
- VectorrowVector=newVector();
- rowVector.addElement(time);
- rowVector.addElement(idCell);
- rowVector.addElement(total);
- rowVector.addElement(user);
- dataVector.addElement(rowVector);
- rowVector=null;
- idCell=null;
- orderItem=null;
- }
- }
- DefaultTableModeltableModel=newDefaultTableModel(dataVector,cmVector){
- @Override
- publicbooleanisCellEditable(introw,intcolumn){
- //只同意用户对第四列的数据举行编纂(第四列是数目)
- if(column==4){
- returntrue;
- }else{
- returnfalse;
- }
- }
- };
- BillTable.setModel(tableModel);
- cmVector=null;
- dataVector=null;
复制代码 利用Vector对象作为机关办法的对象时,要传进两个Vector的实例,第一个是保留数据的Vector,第二个参数是保留列头信息的Vector,在
示例中的dataVector是经由过程遍历一个list对象而静态添补内容的,在实例化并初始化好Vector后,只需挪用JTable的setModel办法,就能够将列头及数据的信息显现在表格中啦。
2)如何增加行点击事务
起首,在JTable的计划视图中先选中JTable,然后右击,在事务的弹出菜单中顺次选中"mouse-click”就能够捕获表格的点击事务了,在这个事务监听办法中,会传进一个java.awt.event.MouseEvent类的实例evt,用evt.getClickCount(),就能够晓得触发该事务时用户的点击次数,只需这个办法前往的值年夜于即是2,就申明用户双击了,上面的示例代码,供人人参考:- if(evt.getClickCount()>=2){
- introwIndex=productTable.rowAtPoint(evt.getPoint());
- intcolumnIndex=Common.getIndetityColumn(productTable);
- //假如没有找到带有标志的列,就不向下实行了
- if(columnIndex==-1){
- return;
- }
- CustomTableCellidentifyCell=(CustomTableCell)productTable.getValueAt(rowIndex,columnIndex);
- StringproductId=identifyCell.getId();
- ProductDetailproductDetail=newProductDetail(productId);
- Common.centerWindow(productDetail);
- //productDetail.setVisible(true);
- }
复制代码 <p>
ruby里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。 |
|