我想在LineChart的每个数据点安装一个工具提示,问题是每个数据点都是通过json添加的,我不知道如何在添加后找到数据点,这是我使用的方法添加数据点:
public static void setDots(ArrayList<Object> dotsArrayList, String name){
Integer numOfEvents;
try {
JSONParser parser = new JSONParser();
// get the data
JSONObject JSON_obj = (JSONObject) parser.parse(new FileReader("C:\\Users\\Diego\\Documents\\NetBeansProjects\\ContenedoresChart\\json_dots.txt"));
JSONArray dayArray = (JSONArray) JSON_obj.get(name);
// get the object of the loop
JSONObject numOfEventsJSON = (JSONObject) dayArray.get(0);
numOfEvents = Integer.parseInt(String.valueOf(numOfEventsJSON.get("numEventos")));
if (numOfEvents.equals(1)) {
JSONObject contenedorArray = (JSONObject) dayArray.get(1);
Double fecha = Double.parseDouble((String.valueOf(contenedorArray.get("fecha"))));
String hora = String.valueOf(contenedorArray.get("hora"));
String nombre = String.valueOf(contenedorArray.get("nombre"));
String id = String.valueOf(contenedorArray.get("ID"));
Object contenedor = new XYChart.Data(fecha, nombre);
dotsArrayList.add(contenedor);
if(contenedoresMap.containsKey(id) == false){
contenedoresMap.put(id, hora);
}
} else {
int JSON_Object = 1;
for(int x = 1; x<=numOfEvents; x++){
String texto_x = String.valueOf(x);
JSONObject contenedorArray = (JSONObject) dayArray.get(x);
Double fecha = Double.parseDouble((String.valueOf(contenedorArray.get("fecha"))));
String hora = String.valueOf(contenedorArray.get("hora"));
String nombre = String.valueOf(contenedorArray.get("nombre"));
String id = String.valueOf(contenedorArray.get("ID"));
Object contenedor = new XYChart.Data(fecha, nombre);
dotsArrayList.add(contenedor);
JSON_Object++;
if(contenedoresMap.containsKey(id) == false)
contenedoresMap.put(id, hora);
System.out.println(name);
}
}
} catch (IOException | ParseException e) {
e.printStackTrace();
System.out.println("hubo un problema con el json");
}
}
基本上json给出了X和Y的信息,但也提供了一个id,我希望在工具提示中显示该id,是否有更简单的方法来实现这一点?简单的工具提示非常复杂