Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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
Codenameone 代码名1:从ImageViewer中包含的DefaultListModel获取当前可见图像索引_Codenameone - Fatal编程技术网

Codenameone 代码名1:从ImageViewer中包含的DefaultListModel获取当前可见图像索引

Codenameone 代码名1:从ImageViewer中包含的DefaultListModel获取当前可见图像索引,codenameone,Codenameone,我正在开发一个应用程序,它利用分层布局将两个图像查看器相互叠加显示。较深的ImageViewer包含捕获的图像(照片),较浅的ImageViewer包含用户可以通过滑动改变的装饰 因此装饰图像存储在ArrayList中,如下所示: decorationImageList = new ArrayList<Image>(); // On filtre les décorations qu'on ajoute à la liste for (String png : r

我正在开发一个应用程序,它利用分层布局将两个图像查看器相互叠加显示。较深的ImageViewer包含捕获的图像(照片),较浅的ImageViewer包含用户可以通过滑动改变的装饰

因此装饰图像存储在ArrayList中,如下所示:

decorationImageList = new ArrayList<Image>();

    // On filtre les décorations qu'on ajoute à la liste 
    for (String png : res.getImageResourceNames()) {
        if (png.endsWith("-ratio-4-3.png")) {
                decorationImageList.add(res.getImage(png));
        }
    }
DefaultListModel<Image> decorationModel = new DefaultListModel<Image>(decorationImageList);
findDecorationIV().setImageList(decorationModel);

现在在阅读时,我倾向于认为应该在自己的DecorationModel类中实现ListModel,因为有一个名为getSelectedIndex的方法。不幸的是,我无法理解这是如何工作的,以及为什么在他们的示例中,他们总是在getSelectedIndex方法中返回0

因此,我真的卡住了,并寻求帮助,以便能够获得当前可见的装饰显示给用户

非常感谢任何能帮忙的人


关于

最终,在做了其他事情之后,我尝试了比以前更简单的方法。事实上,在加载装饰模型后,我在ImageList中添加了一个监听器(本例中为SelectionListener):

findDecorationIV().getImageList().addSelectionListener(new SelectionListener() {

                @Override
                public void selectionChanged(int oldSelected, int newSelected) {
                    System.out.println("On vient de sélectionner la décoration suivante " + newSelected);

                }
            });

所以问题解决了

你知道这个问题的答案吗
findDecorationIV().addFocusListener(new FocusListener() {

            @Override
            public void focusLost(Component cmp) {
                System.out.println("Focused lost!"); // never triggered

            }

            @Override
            public void focusGained(Component cmp) {
                System.out.println("On focus!"); // triggered only once

            }
        });
findDecorationIV().getImageList().addSelectionListener(new SelectionListener() {

                @Override
                public void selectionChanged(int oldSelected, int newSelected) {
                    System.out.println("On vient de sélectionner la décoration suivante " + newSelected);

                }
            });