是否有可能在LabelField中删除文本?

时间:2011-05-09 13:35:40

标签: blackberry strikethrough labelfield

我已经能够使用粗体,下划线和斜体文本为LabelField设置样式,但我还没有找到指定删除线文本的方法。我找不到任何支持的文档或其他任何实现它的示例。是否可以在BlackBerry OS 4.6或4.7中显示带有删除线效果的文本?

1 个答案:

答案 0 :(得分:2)

我认为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);