2011-04-08 6 views
0

안녕하세요. 아래 코드는 .i 팝업창에서 검은 색 테두리 색상을 제거하려고합니다.이 시도했지만 여전히 검은 색 테두리가 있습니다. 공용 클래스 S2SPopup는 PopupScreen {blackberery 검은 색 테두리가없는 팝업 창이 있습니다.

public S2SPopup() 
{ 
    super(new VerticalFieldManager() 
    { 
     public void paint(Graphics g) 
     { 
      int a = g.getGlobalAlpha(); 
      int c = g.getColor(); 
      g.setColor(c); 
      g.drawBitmap(0, 0, HomeScreen.popupimg.getWidth(),HomeScreen.popupimg.getHeight(),HomeScreen.popupimg, 0, 0); 
      super.paint(g); 
     } 
     protected void sublayout(int maxWidth, int maxHeight) 
     { 
      super.sublayout(HomeScreen.popupimg.getWidth(),HomeScreen.popupimg.getHeight()); 
      setExtent(HomeScreen.popupimg.getWidth(),HomeScreen.popupimg.getHeight()); 
     } 

    }); 

    setBackground(BackgroundFactory.createSolidTransparentBackground(Color.WHITE, 0)); 



    VerticalFieldManager vfm_Label = new VerticalFieldManager(VerticalFieldManager.VERTICAL_SCROLL) 
    { 
     protected void sublayout(int maxWidth, int maxHeight) 
     { 
      super.sublayout(maxWidth,150); 
      setExtent(maxWidth, 150); 
     } 
    }; 
    vfm_Label.setMargin(80, 0, 0, 0); 

    ButtonField btnclose = new ButtonField("",ButtonField.RIGHT) 
    { 
     public void paint(Graphics g) 
     { 
      //setBackground(BackgroundFactory.createSolidTransparentBackground(Color.WHITE, 0)); 
      int c = g.getGlobalAlpha(); 
      g.setBackgroundColor(c); 
      super.paint(g); 
     } 
    }; 
    btnclose.setMargin(0, 0, 0, 250); 
    btnclose.setChangeListener(new FieldChangeListener() { 

     public void fieldChanged(Field field, int context) 
     { 
      close(); 
     } 
    }); 

    LabelField s2sLabelField = new LabelField() 
    { 
     public void paint(Graphics g) 
     { 
      g.setColor(Color.BLUE); 
      super.paint(g); 
     } 
     protected void layout(int width, int height) 
     { 
      super.layout(width, 150); 
      setExtent(width, 150); 
     } 
    }; 
    s2sLabelField.setPadding(0, 50, 0, 30); 
    s2sLabelField.setText("lasjdfljlsjlfj ljsfdl jsflljfiowurnowncnvouern.zvovn ljlsfdjj jlj" + 
      "jsljfdlj ljsfl sjfl jfjsljdfljslfu jsjf;ujerpljsfdjpn sdflsajf ss23s mail jsldfjlfdju nsfjljljlfjmnn,nsf,n,nlojljlsndf,n,ljnsjfdljjufsn jj" + 
      "sjfd;jjljlsduflja;sfj ljsldfujrqnfqperiujf.zvnpqrue 33333333333333333333333333333333333333 "); 

    add(btnclose); 
    vfm_Label.add(s2sLabelField); 
    add(vfm_Label); 



} //end of constructor 

} 나는 그것이이 문제를 해결합니다,하지만 당신은 단지 특정 할 대리자 관리자에게 0의 마진을 제공하려고 할 수 있습니다 의심

답변

0

메인 화면의 // 끝 확장 거기에 아무 것도없고 배경색이 테마에서 들어온다. 내가 과거에 구현 한 해결책은 사용자 정의 화면을

public class CustomPopup extends Screen { 

public CustomPopup() { 
    super(new VerticalFieldManager() { 
     //your custom code or a custom manager class (which is what I did) 
    ); 
    setBackground(BackgroundFactory.createSolidTransparentBackground(0x000000, 0)); 
} 

protected void sublayout(int width, int height) { 
    //make this screen take up the entire display 
    setPosition(0, 0); 
    setExtent(Display.getWidth(), Display.getHeight()); 

    //and layout the delegate 
    setPositionDelegate(some_x, some_y); 
    layoutDelegate(some_width, some_height); 
} 
} 
당신은 그것을 자신의 버튼 및 기타 그래픽을 추가해야합니다

를 만드는 것입니다,하지만 올바른 방향이해야 적어도 도움이 포인트 당신 .

1

빈 구현으로 applyTheme를 재정의하고 검은 색 테두리가 사라집니다. 당신은 혼자가 생성자에서이 문제를 해결할 수 없습니다

protected void applyTheme(){} 
+0

이도 그렇게 준비 : – Dan

+0

고맙습니다, UI 컴포넌트 내에서 등 당신의 버튼에 테마를 날려 것이다. 마이클 나는 이것을 이것을 사용했다. – dev

관련 문제