2011-10-25 4 views
0

행에 여러 열을 표시하는 동안 문제가 발생했습니다. 여러 열 및 여러 행 목록 필드가 필요합니다. 이제는 라벨 필드를 사용하여이 케이스를 만들려고 노력하고 있습니다. 다른 케이스의 경우 문제를 직면하고 있습니다. 내 코드는 다음과 같습니다여러 열 목록 필드

VerticalFieldManager TOrderVFM = new VerticalFieldManager() 

for (int i = 0; i <10; i++) 
{ 
    HorizontalFieldManager temphfm1 = new HorizontalFieldManager(){ 

     protected void sublayout(int width, int height) 
     { 

      int w = 480; 
      int h = 400; 

      super.sublayout(w, h); 
      super.setExtent(w, h); 
     } 
    }; 

    TOrderVFM.add(temphfm1); 

    temphfm1.add(createDayName1(MTradeOrderSoap.objects[i].getProperty("orderDate").toString())); 
    temphfm1.add(createDayName1(MTradeOrderSoap.objects[i].getProperty("id").toString())); 
    temphfm1.add(.createDayName1(MTradeOrderSoap.objects[i].getProperty("label").toString())); 
    temphfm1.add(createDayName1(MTradeOrderSoap.objects[i].getProperty("quantityPending").toString())); 
    temphfm1.add(createDayName1(MTradeOrderSoap.objects[i].getProperty("securityName").toString())); 
    temphfm1.add(createDayName1(MTradeOrderSoap.objects[i].getProperty("priceType").toString())); 
    temphfm1.add(createDayName1(MTradeOrderSoap.objects[i].getProperty("orderOrigin").toString())); 

    temphfm1.add(ut.createDayName1(MTradeOrderSoap.objects[i].getProperty("orderStatus").toString())); 

} 

이 루프는 또한 모든 화면의 내 하나의 좋은 일이 below.Now 주어진 비누 응답에서오고 createDayName (라는 이름의 메소드에 전달되는 값)를 삽입하는 것입니다 하지만 난 내 다른 화면에 대한 다음과 같이하려고 할 때 : 오류가 직면 오전 : 경고 : 레이아웃 필드, 부족한 높이 또는 너비

두 관리자의 너비와 높이 설정 한 있지만 아무것도 작동하는 것 같습니다. 그 일을 지원해주세요.

public LabelField createDayName1(final String day) 
{ 
    LabelField cell = new LabelField("", Field.NON_FOCUSABLE) { 
     protected void layout(int width, int height) 
     { 
      int w = Display.getWidth()/7; 
      int h = 40; 
      super.layout(w, h); 
      super.setExtent(w, h); 
     } 

     protected void paint(Graphics g) 
     { 
      g.setColor(0xFF9912); 
      g.setFont(dayNameFont); 
      g.fillRect(0, 0, getWidth(), getHeight()); 
      g.setColor(Color.BLACK); 
      // g.setColor(0x466385); 
      g.drawText(day.trim(), getWidth()/2 - dayNameFont.getAdvance(day)/3, getHeight()/3 - dayNameFont.getHeight()/2); 
      super.paint(g); 
     } 

    }; 
    return cell; 
}            

답변

1

layout()sublayout()에서 당신은 당신이 그들이 있기 때문에 이러한 방법으로 전송하기 인수에 폭과 높이 당신이 (그 문제와 super.layout()/super.sublayout()) setExtent()에 전달하는 비교하고 있는지 확인해야합니다 최대 사용 가능한 너비와 높이. 필드가 사용 가능한 것보다 넓거나 (키를 사용하여) (setExtent() 사용) 시도하면 제대로 표시 할 수 없습니다.