Jfreechartでポイントを選択し、JavaFX TableViewで対応するポイントを選択して、1つまたは複数のポイントを選択できるようにするコードをまとめることができました。しかし、それはどちらかの状況です。私が欲しいのは、CTLキーをリッスンできるようにして、ユーザーがクリックと組み合わせてCLTキーが押されたときにのみ複数のポイントを選択できるようにすることです。だから私の質問は、どこに、どのようにキーリスナーを置くことができるかです。
XYDataset dataset = createXYDataSet(fieldname1,fieldname2);
ChartViewer plotframe = new ChartViewer(createXYChart(dataset, fieldname1,fieldname2));
plotframe.addChartMouseListener(new ChartMouseListenerFX(){
public void chartMouseClicked(ChartMouseEventFX chartmouseevent) {
int datapoint;
selectionmodel.setSelectionMode(SelectionMode.MULTIPLE);
try {
XYItemEntity ce = (XYItemEntity) chartmouseevent.getEntity();
datapoint = ce.getItem();
datatable.requestFocus();
datatable.getSelectionModel().select(datapoint);
datatable.getFocusModel().focus(datapoint);
datatable.scrollTo(datapoint);
}catch (Exception e){
}
}
public void chartMouseMoved(ChartMouseEventFX chartmouseevent) {
}
}
});
ドキュメントを見るだけでhttp://www.jfree.org/jfreechart/api/javadoc_old/org/jfree/chart/fx/interaction/ChartMouseEventFX.html#getTrigger--getTriggerがMouseEventを取得することがわかりますhttps:// docs.oracle.com/javase/8/javafx/api/javafx/scene/input/MouseEvent.html#isControlDown-- isControlDown()があります
だから試してみてください boolean isCtrlDown = chartmouseevent.getTrigger().isControlDown();
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加