欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

javafx 折线表格拖拽事件

程序员文章站 2024-02-05 11:43:58
...

实现效果

左移拖拽减小,右移拖拽增大

拖拽前
javafx 折线表格拖拽事件
拖拽后
javafx 折线表格拖拽事件
代码展示

 lc.setOnMouseDragged(new EventHandler<MouseEvent>() {
           @Override
           public void handle(MouseEvent event) {
               //只在折线图范围内点击有效
               if(event.getX()>10 && event.getX()<lc.widthProperty().get()-25 && event.getY()>5 && event.getY()<lc.heightProperty().get()-20){
                   NumberAxis xAxis = (NumberAxis)lc.getXAxis();
                   double scale = xAxis.getUpperBound() - xAxis.getLowerBound();
                   double lowerBound1 = xAxis.getLowerBound();
                   if(lowerBound1+(event.getX()-getPosition())/scale<=0){
                       return;
                   }
                   xAxis.setLowerBound(lowerBound1+Math.round((event.getX()-getPosition())/scale));
                   xAxis.setUpperBound(scale+lowerBound1+Math.round((event.getX()-getPosition())/scale));
                   MyGetLineChartUtils.xAxisLabelFormat(xAxis,2,6);
               }

           }
       });

Tips:
在设置坐标轴范围时一定要Math.round取整呀,不然会抖动很严重
javafx 折线表格拖拽事件