문제

Alice Blue 배경이있는 메인 스크린에 오른쪽 정렬 텍스트가 포함 된 여러 Labelfields를 배치하고 싶습니다. 불행히도 나는 그렇게하는 방법을 알 수없는 것 같습니다.

내가 할 수있는 최선의 방법은 백라운드를 Color.

    public void paint(Graphics graphics) {
        graphics.setBackgroundColor(Color.ALICEBLUE);
        graphics.clear();
        super.paint(graphics);  
    }

그리고...

    LabelField display = new LabelField("", LabelField.FIELD_RIGHT){
        public void paint(Graphics graphics) {
            graphics.setColor(Color.DIMGRAY);
            graphics.setBackgroundColor(Color.ALICEBLUE);
            graphics.clear();
            super.paint(graphics);  
        }
    };

메인 스크린 페인트 루틴을 무시하면 Alice Blue 배경이 나에게 있어도 Labelfields의 페인트 루틴을 무시하는 것은 적절하지 않은 것 같습니다. 결과는 레이블 텍스트 뒤에 Alice Blue 배경이있는 흰색 행입니다. 첨가 USE_ALL_WIDTH 배경 문제를 수정하지만 올바르게 일치 할 수는 없습니다. USE_ALL_WIDTH.

누구든지 이것을위한 작업을 알고 있습니까?

도움이 되었습니까?

해결책

버전 <= 4.5에서 오버 리드 페인트 ()로 수직 필드 매너를 만들 수 있습니다.

class BGManager extends VerticalFieldManager {
    public BGManager() {
        super(USE_ALL_HEIGHT|USE_ALL_WIDTH);
    }
    public void paint(Graphics graphics)
    {
        graphics.setBackgroundColor(Color.DARKRED);
        graphics.clear();
        super.paint(graphics);
    }
}

그런 다음 간단한 Labelfield를 추가하여 화면에 사용하십시오.

class Scr extends MainScreen {
    BGManager manager = new BGManager();
    public Scr() {
        super();
        add(manager);       
        manager.add(new LabelField("Hello!", FIELD_RIGHT));
        manager.add(new LabelField("This is a test", FIELD_RIGHT));
    }
}

버전> = 4.6에서 기본 화면 관리자에게는 setbackGroud () 메소드를 사용할 수 있습니다.

class Scr extends MainScreen {  
    public Scr() {
        super();
        VerticalFieldManager manager = 
            (VerticalFieldManager)getMainManager();
        manager.setBackground(
            BackgroundFactory.createSolidBackground(
                Color.DARKRED));        
        manager.add(new LabelField("Hello!", FIELD_RIGHT));
        manager.add(new LabelField("This is a test", FIELD_RIGHT));
    }
}

보다 BB KB DB -00131- 화면의 배경색 변경 방법

다른 팁

사용

new LabelField("",LabelField.USE_ALL_WIDTH | DrawStyle.RIGHT);

Labelfield의 페인트 방법을 무시하지 않고.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top