Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将图像导入blackberry并设置onClick侦听器?_Java_Blackberry_Java Me - Fatal编程技术网

Java 如何将图像导入blackberry并设置onClick侦听器?

Java 如何将图像导入blackberry并设置onClick侦听器?,java,blackberry,java-me,Java,Blackberry,Java Me,我对BlackBerry编程相当陌生,我想知道是否有人知道关于如何将图像加载到屏幕并设置onClick侦听器的教程或片段 编辑,走了这么远: ButtonField btf1 = new ButtonField("Fine!"); ButtonField btf2 = new ButtonField("Great!"); RichTextField rtf = new RichTextField("HELLO, HOW ARE YOU?"); Bitmap LOGO = Bitmap.getB

我对BlackBerry编程相当陌生,我想知道是否有人知道关于如何将图像加载到屏幕并设置onClick侦听器的教程或片段

编辑,走了这么远:

ButtonField btf1 = new ButtonField("Fine!");
ButtonField btf2 = new ButtonField("Great!");
RichTextField rtf = new RichTextField("HELLO, HOW ARE YOU?");

Bitmap LOGO = Bitmap.getBitmapResource("1.png");
BitmapField LogoBmpField = new BitmapField(LOGO);

HelloWorldScreen()
{        
    setTitle("My First App");
    add(rtf);
    add(btf1);
    add(btf2);
    add(LogoBmpField);
}
谢谢

编辑:顺便问一下,黑莓手机的界面应该如何制作?简单地说

ButtonField btf1 = new ButtonField("Fine!");
add(btf1);
还是有更直观的方式,比如android的XML


还有一件事,如何更改或设置某个对象的属性。假设我想更改按钮的标题-btf1(期望显示可用属性列表)不会给出任何信息。

将图像放在res文件夹中,然后尝试此操作

Bitmap bmpLogo = Bitmap.getBitmapResource("yourImage.jpg");
BitmapField logo = new BitmapField(bmpLogo){
    protected boolean trackwheelClick(int status, int time)
    {   
        // Your onclick code here
        return true;
    }
};
add(logo);
1) 您需要使
位图字段可聚焦

我刚试过这个:

    BitmapField LogoBmpField = new BitmapField(LOGO, BitmapField.FOCUSABLE) {
        protected boolean trackwheelClick(int status, int time) {   
            System.out.println(" -- You clicked me! ");
            return true;
        }
    };
这似乎奏效了

2) 要更改按钮上的文本,请使用


谢谢不适用于位图字段,但适用于按钮字段。:)哦,看起来BitmapField不是trackwheelClick,有没有在屏幕上单击的方法?我不知道,不知道为什么这不起作用,BitmapField是字段的扩展,所以它应该使用trackwheelClick。聚焦风格很好!只发布相关部分来回答问题。代码看起来不是很清楚,也不是经过深思熟虑的。它也显示出对黑莓用户界面复杂性的理解很少,我会小心在生产程序中使用此代码。
btf1.setLabel("new button text");
public class MyScreen extends MainScreen {

    public LanguageSelector() {

        Bitmap logoBitmap = Bitmap.getBitmapResource("normalarabflag.png");
        BitmapField LogoBmpField = new BitmapField(logoBitmap, BitmapField.FOCUSABLE | Field.FIELD_HCENTER) {
            protected boolean navigationClick(int status, int time) {   
                System.out.println(" -- You clicked me! ");
                UiApplication.getUiApplication().pushScreen(new SecoundScreen());
                Dialog.alert("Load Complete");
                return true;
            }
        };

        LabelField labelfield = new LabelField("Arabic ",Field.FIELD_HCENTER|LabelField.FOCUSABLE);

        VerticalFieldManager vrt=new VerticalFieldManager(USE_ALL_WIDTH) {

            protected void sublayout(int maxWidth, int maxHeight) {

                super.sublayout(Display.getWidth(),Display.getHeight());
                setExtent(Display.getWidth(),Display.getHeight());

            }
        };

        Font f=labelfield.getFont();
        int hight1=f.getAdvance(labelfield.getText());
        int k=labelfield.getPreferredHeight();

        int number=hight1/Display.getWidth()+1;
        int hight2=logoBitmap.getHeight();
        int padding=(Display.getHeight()-((number*k)+hight2))/2;

        if(padding>0) {
            LogoBmpField.setPadding(padding,0,0,0);
        }

        vrt.add(LogoBmpField);
        vrt.add(labelfield);

        add(vrt);
    }     
}