Можно ли зачеркнуть текст в LabelField? - PullRequest
1 голос
/ 09 мая 2011

Мне удалось оформить LabelField с помощью текста, выделенного жирным шрифтом, подчеркиванием и курсивом, но мне еще не удалось найти способ указать зачеркнутый текст. Я не смог найти ни одной документации, которую он поддерживает, или других примеров, где это реализовано. Можно ли отображать текст с эффектом зачеркивания в BlackBerry OS 4.6 или 4.7?

1 Ответ

2 голосов
/ 09 мая 2011

Я думаю, что BB не в стиле компонентов, а в расширении их, поэтому решение может быть таким:

enter image description here

package mypackage;

import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.ui.decor.*;

public class MyApp extends UiApplication {
    public static void main(String[] args) {
        MyApp myApp = new MyApp();
        myApp.enterEventDispatcher();
    }

    public MyApp () {
        pushScreen(new MyScreen());
    }    
}

class MyScreen extends MainScreen {
    public MyScreen() {
        LabelField myLabel = new LabelField("Strike me") {
            protected void paint(Graphics g) {
                super.paint(g);

                int w = getFont().getAdvance(getText());
                g.drawLine(0, getHeight()/2, w, getHeight()/2);
            }
        };
        add(myLabel);
    }
}

ОБНОВЛЕНИЕ: Вытакже можно использовать

Font f = g.getFont();
Font s = f.derive(Font.STRIKE_THROUGH);
g.setFont(s);
...