Ho ottenuto questo funzionamento utilizzando un listener del mouse e la classe CrosshairOverlay. Dopo che sarò tornato da un viaggio di vacanza, posterò il mio codice. Finì per non essere troppo difficile.
Mi dispiace, ho dimenticato questo!
Prima di tutto, si desidera calcolare i valori x, y per il punto in cui si desidera il mirino. Per me, volevo che si muovesse lungo i punti della nostra linea, quindi ho calcolato il valore x più vicino e ho usato quella coppia di dati per x, y.
Poi chiamo questo metodo:
protected void setCrosshairLocation(double x, Double y) {
Crosshair domainCrosshair;
List domainCrosshairs = crosshairOverlay.getDomainCrosshairs();
if (domainCrosshairs.isEmpty()) {
domainCrosshair = new Crosshair();
domainCrosshair.setPaint(BlueStripeColors.LIGHT_GRAY_C0);
crosshairOverlay.addDomainCrosshair(domainCrosshair);
}
else {
// We only have one at a time
domainCrosshair = (Crosshair) domainCrosshairs.get(0);
}
domainCrosshair.setValue(x);
if (y != null) {
Crosshair rangeCrosshair;
List rangeCrosshairs = crosshairOverlay.getRangeCrosshairs();
if (rangeCrosshairs.isEmpty()) {
rangeCrosshair = new Crosshair();
rangeCrosshair.setPaint(BlueStripeColors.LIGHT_GRAY_C0);
crosshairOverlay.addRangeCrosshair(rangeCrosshair);
}
else {
// We only have one at a time
rangeCrosshair = (Crosshair) rangeCrosshairs.get(0);
}
rangeCrosshair.setValue(y);
}
}
noti che crosshairOverlay è un'istanza di CrosshairOverlay.
fonte
2009-12-20 04:12:52
Potrebbe plz pubblicare il tuo codice di qui? –