我采用了网上一位牛人写的LIST (LWUIT)表格实现我的表格,经过调试发现设置form.setScrollabe(false)就可以实现竖向滚动,但
怎么调也调不出来横向的滚动,想来这里求教一下,希望各位高手帮忙.
- Java code
package com.onest.xmair.test;import com.sun.lwuit.Component;import com.sun.lwuit.Container;import com.sun.lwuit.Label;import com.sun.lwuit.List;import com.sun.lwuit.events.ActionListener;import com.sun.lwuit.layouts.BorderLayout;import com.sun.lwuit.layouts.BoxLayout;import com.sun.lwuit.list.ListCellRenderer;import com.sun.lwuit.plaf.Border;public class Cls_CellList { static public List createList(CellList[] celllist,int stringWidth,ActionListener lAListner) { List list = new List(celllist); list.getStyle().setBgTransparency(0); //开始显示List list.setListCellRenderer(new CellRenderer(celllist[0].getColumm().length, stringWidth)); //添加消息处理 list.addActionListener(lAListner); return list; } static public class CellRenderer extends Container implements ListCellRenderer { //初始化显示Columm每个字段的Label private Label[] lbColumm ; private Label focus = new Label(""); public CellRenderer(int size,final int stringWidth) { lbColumm = new Label[size]; setLayout(new BorderLayout()); Container cnt = new Container(new BoxLayout(BoxLayout.X_AXIS)); for(int i=0; i < lbColumm.length; i ++)//定义显示Columm每个字段的Label { lbColumm[i] = new Label(){ //很多人都问怎么setWidth平时没什么用,这是因为setWidth必须在重载的时候使用,LWUIT奇怪的地方之一! public void setWidth(int arg0) { super.setWidth(stringWidth); } }; //设置为最亮的颜色 lbColumm[i].getStyle().setFgColor(getStyle().getFgSelectionColor()); //设置背景为透明,不然会遮挡focus影响外观 lbColumm[i].getStyle().setBgTransparency(0); // 新增代码 lbColumm[i].setFocusable(true); cnt.addComponent(lbColumm[i]); } // 新增代码 cnt.setFocusable(true); //cnt.setScrollableX(true); //cnt.setScrollableY(true); addComponent(BorderLayout.CENTER, cnt); focus.getStyle().setBgTransparency(255); focus.getStyle().setBorder(Border.createRoundBorder(10, 10)); } public Component getListCellRendererComponent(List list, Object value, int index, boolean isSelected) { CellList cellList = (CellList) value; for(int i=0;i<lbColumm.length;i++) { lbColumm[i].setText(cellList.getColumm()[i]); } return this; } public Component getListFocusComponent(List list) { //Columm栏不具备选中事件 if(list.getSelectedIndex()>0) { return focus; } return null; } } static public class CellList { //保存该列的所有字段 private String[] lstColumm; public CellList(String[] columm) { //复制数组 lstColumm=new String[columm.length]; System.arraycopy(columm, 0, lstColumm, 0, lstColumm.length); } //返回该列 public String[] getColumm(){ return lstColumm; } }}
------解决方案--------------------------------------------------------
帮顶
------解决方案--------------------------------------------------------
綫程可以嗎?
------解决方案--------------------------------------------------------
List.setOrientation(int orientation)
setOrientation
public void setOrientation(int orientation)
Sets the list orientation HORIZONTAL or VERTICAL
Parameters:
orientation - the list orientation HORIZONTAL or VERTICAL