也许为时已晚,但不知怎的,我没有得到以下问题:
我在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>>
对象的方法。
但到目前为止它没有用。它只复制数组的索引而不复制数据。