0

こんにちはすべて以下は私のコードです。ポップアップウィンドウから黒い境界線の色を削除しようとしています。これを試しましたが、それでも小さな黒い境界線が表示されます。public class S2SPopup extends PopupScreen {

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

} // メイン画面終了

4

2 に答える 2

1

空の実装で applyTheme をオーバーライドすると、黒い境界線が消えます。コンストラクターだけでこれを修正することはできません。

protected void applyTheme(){}
于 2011-04-08T23:05:04.047 に答える
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);
}
}

独自のボタンやその他のグラフィックを追加する必要がありますが、これは少なくとも正しい方向を示すのに役立つはずです。

于 2011-04-08T20:11:32.070 に答える