我有2个方法,第一个显示所选值的方法,来自我的JList(列表)的索引。我想要做的是将selectedValue - s - 发送到CreateMap方法。我试过这段代码,但是s变量是null。为什么呢?
public void actionPerformed(ActionEvent e)
{
int index = 0;
if(e.getActionCommand().equals("Check")){ //if button is pressed
index = list.getSelectedIndex();
System.out.println("Index selected" + index);
String s = (String) list.getSelectedValue();
System.out.println("Value Selected " +s);
createMap();
}
}
private Map<String, Integer>createMap()
{
Map<String, Integer> graphicsMap = new HashMap<>();
for(LaneInformation l:graphics.laneInfos )
{
if (l.getEllipse().contains(graphics.startX, graphics.startY)) {
graphicsMap.put(this.s, graphics.startX);
}
}
return graphicsMap;
}
答案 0 :(得分:2)
我假设你有2个名为s
的字符串变量,actionPerformed
中有一个全局变量和一个本地变量。
更改行
String s = (String) list.getSelectedValue();
到
this.s = (String) list.getSelectedValue();
它应该有效。确保您有一个名为String s
的全局变量。