通过类保持对象内容(java-gui)

时间:2014-12-03 21:50:13

标签: java swing arraylist hashmap

也许为时已晚,但不知怎的,我没有得到以下问题:

我在jpanel上创建了一个java-swing应用程序。 我有一个jscrollpanel和一个jList,我正在填充ArrayList<HashMap<String, String>>内容。

内容填充由动作侦听器触发,我在gui类中创建了一个单独的类。

伪码:

public class MyGUI extends JPanel
                          implements ListSelectionListener {
        public MyGUI() {
                    super(new BorderLayout());
                     ......
                 /*** SearchListener triggered by button click **/

        }

        public class SearchListener implements ActionListener, DocumentListener {
              // handling the ArrayList<HashMap<String, String>>
                  .....
        }
}

我的问题是,我需要在双击事件(jList上的指针)之后的另一种方法中使用该arraylist。

所以我试着宣布它

private static  ArrayList<HashMap<String, String>> myList;

尝试在鼠标点击事件中使用它:

list.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent evt) {
                JList list = (JList)evt.getSource();
                if (evt.getClickCount() == 2) {
                    int index = list.locationToIndex(evt.getPoint());

                    System.out.println("doubled!! "+ index + " : " + myList.get(index);


                } else if (evt.getClickCount() == 3) {   // Triple-click
                    int index = list.locationToIndex(evt.getPoint());

                }
            }
        });

但它不会工作!!至少它知道arraylist之前有多少索引!

一倍!! 1:[{},{},{},{},{},{},{},{},{},{},{},{},{},{}]

怎么没有内容呢?

我对这个对象做错了什么?

感谢和问候

更新

当我不够清楚时,我很抱歉:

我认为我的问题太简单了,所以我会用最简单的方式解释它:

我有一个对象: ArrayList<HashMap<String, String>>

我正在填充数据。

这发生在我提到的Actionlistener类中。

我想重用我创建的对象,因为我不想重新执行我用于创建ArrayList<HashMap<String, String>>对象的方法。

但到目前为止它没有用。它只复制数组的索引而不复制数据。

0 个答案:

没有答案