是否可以在 LabelField 中对文本添加删除线?

发布于 2024-11-05 22:52:13 字数 159 浏览 5 评论 0原文

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

I've been able to style a LabelField with bold, underlined and italic text, but I have yet to find a way to specify strikethrough text. I haven't been able to find any documentation that it's supported or any other examples where it's implemented. Is it possible to display text with a strikethrough effect in BlackBerry OS 4.6 or 4.7?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

回首观望 2024-11-12 22:52:13

我认为 BB 的方式不是为组件设置样式,而是扩展它们 - 所以解决方案可能是:

在此处输入图像描述

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);

I think BB way is not to style components, but extend them - so the solution could be:

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);
    }
}

UPDATE: You could also use

Font f = g.getFont();
Font s = f.derive(Font.STRIKE_THROUGH);
g.setFont(s);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文