2012-06-29 4 views
1

LWUIT을 사용하여 디자인 한 내 j2ME 프로젝트에 목록을 삽입했습니다.LWUIT 스크롤하지 않음 목록

Button btnHome; 
    Button btnExit; 
    List list; 
    setScrollableY(false); 
    setScrollable(false); 

    list = new List(); 
    MyRenderer render = new MyRenderer(); 
    list.setListCellRenderer(render);   

     list.getStyle().setFgColor(0xfaedf2); 
     list.setSmoothScrolling(true);  
     list.addSelectionListener(new SelectionListener(){ 
      public void selectionChanged(int i, int i1) { 
      try { 
      InformationForm form = new InformationForm();           
      form.show(); 
      } catch (IOException ex) { 
       ex.printStackTrace(); 
      } 


     } 


     }); 

     String[] arrString = builder.getArrName(); 
     System.out.println(arrString.length); 
     for (int i = 0; i < arrString.length ; i++) 
       { 
       list.addItem(arrString[i]); 
      // System.out.println("item no " + i +" = " +arrString[i] + "added in list"); 
       }   

      BorderLayout bl=new BorderLayout(); 


setLayout(bl); 
Container holdingContainer=new Container(new FlowLayout(Component.LEFT)); 
Container c0 = new Container(new BoxLayout(BoxLayout.X_AXIS)); 
Container c1 = new Container(new FlowLayout(Component.LEFT)); 
Container c2 = new Container(new FlowLayout(Component.LEFT)); 

Container footerContainer=new Container(new BoxLayout(BoxLayout.X_AXIS)); 

c0.addComponent(cityChoice); 
c0.addComponent(btnFilter); 


    //c2.addComponent(list); 

    c1.setPreferredH(25); 
    holdingContainer.addComponent(c0); 
    holdingContainer.addComponent(c1); 
    getStyle().setBgColor(0x730E36); 
// holdingContainer.addComponent(c2); 
    holdingContainer.setPreferredH(280); 
    holdingContainer.setScrollableY(true); 

    addComponent(BorderLayout.CENTER,list); 
    //addComponent(BorderLayout.WEST,holdingContainer); 
    footerContainer.getStyle().setMargin(Component.LEFT, 0); 
    footerContainer.addComponent(btnHome); 
    footerContainer.addComponent(btnExit); 

    addComponent(BorderLayout.SOUTH,footerContainer); 

목록의 렌더러, 공용 클래스 MyRenderer이 TextArea에의 ListCellRenderer를 구현 확장은 {

public Component getListCellRendererComponent(List list, Object value, int index, boolean isSelected){ 
getStyle().setBorder(Border.createEmpty()); 
getStyle().setFgColor(0xfaedf2); 
getStyle().setBgColor(isSelected ? 0x630A2E : 0x730E36); 

setText(value.toString()); 

if (isSelected) { 
setFocus(true); 
getStyle().setBgTransparency(100); 
} else { 
setFocus(false); 
getStyle().setBgTransparency(0); 
} 
return this; 
} 
public Component getListFocusComponent(List list){ 
    return null;} 


} 

장치에, 내가 목록을 스크롤 할 때 문제가 항목을 다음과 같이 코드는 내가 만진 곳은 즉시 선택되고 그 새로운 형태가 열립니다. 목록을 전혀 스크롤 할 수 없습니다. 이 문제를 푸는데 도와주세요.

답변

2

ActionListener 대신 SelectionListener을 사용할 수 있습니까?

+0

예, 문제가 발생했습니다. 액션 리스너로 바꿨습니다. 이제는 정상적으로 작동하고 있습니다. – Dania