位图按钮字段的标签/名称

时间:2012-03-12 13:54:45

标签: blackberry java-me

目前我的应用程序中有4个位图按钮。我想为每个按钮添加类似Label / Name的内容,这样每当有人专注于特定按钮时,名称就会出现在屏幕上的某个位置。它可能位于顶部,按钮下方或任何地方都可以。

我该怎么做?我尝试搜索位图按钮字段标签,但我发现没有什么真正有用。

1 个答案:

答案 0 :(得分:3)

您可以在按钮字段下方放置CustomLabelField。覆盖ButtonFields onFocus(int direction)onUnfocus()方法。在它们内部调用CustomLabelField的setLabel(String label)方法

class CustomLabelField extends Field {
    String label;
    public void setLabel(String label){
        this.label = label;
        invalidate();
    }
    protected void layout(int arg0, int arg1) {
        setExtent(Display.getWidth, getFont().getHeight());
    }

    protected void paint(Graphics graphics) {
        graphics.setColor(Color.Black);
        graphics.drawText(label, 0, 0);
    }
}

编辑(评论后)

您可以使用此自定义按钮并在其中添加其他功能。我没有尝试,如果这是有效的,但应该工作。

import net.rim.device.api.ui.component.BitmapField;
import net.rim.device.api.ui.container.MainScreen;

public class CustomButtonField extends BitmapField{
    private String label = "";
    private MainScreen yourScreen;

    public CustomButtonField(String label, MainScreen yourScreen) {
        super();
        this.label = label;
        this.yourScreen = yourScreen;
    }

    protected void onFocus(int direction) {
        yourScreen.setTitle(label);
        super.onFocus(direction);
    }

    protected void onUnfocus() {
        yourScreen.setTitle("");
        super.onUnfocus();
    }
}