1.显示节点值

XYLineAndShapeRenderer renderer = new

XYLineAndShapeRenderer();​

// 显示节点的值

renderer.setBaseItemLabelsVisible(true);

renderer.setBasePositiveItemLabelPosition(new

ItemLabelPosition(

ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));

renderer.setBaseItemLabelGenerator(new

StandardXYItemLabelGenerator());

renderer.setBaseItemLabelPaint(new Color(102, 102, 102));//

显示折点数值字体的颜色

2.当双击鼠标时,显示标尺,再双击消失。

boolean

domainCrosshairState​

= false;

chartPanel.addChartMouseListener(new ChartMouseListener() {

public void chartMouseMoved(ChartMouseEvent arg0) {}

public void chartMouseClicked(ChartMouseEvent e) {

if(e.getTrigger().getClickCount() == 2){

chartPanel.setHorizontalAxisTrace(domainCrosshairState);

// 双击竖线

domainCrosshairState =

!domainCrosshairState;​

}...

3.在一条折线图上,实现新增两条竖线,双击显示标尺,单击时,竖线移动到鼠标位置

chartPanel.addChartMouseListener(new ChartMouseListener()

{

public void chartMouseMoved(ChartMouseEvent arg0) {}

public void chartMouseClicked(ChartMouseEvent e) {

if(e.getTrigger().getClickCount() == 2){

domainCrosshairState =

!domainCrosshairState;

chartPanel.setHorizontalAxisTrace(domainCrosshairState); //

双击竖线

//数据点可见

XYSeriesCollection tsc = seriesInfo;//总的

@SuppressWarnings("unchecked")

List seri = tsc.getSeries();

XYPlot plot = (XYPlot)jfreechart.getPlot();

XYLineAndShapeRenderer xyLineAndShapeRenderer =

(XYLineAndShapeRenderer)plot.getRenderer();

if(domainCrosshairState){

xyLineAndShapeRenderer.setSeriesShapesVisible(0,

true); // 数据点可见

}else{

//数据点不可见

xyLineAndShapeRenderer.setSeriesShapesVisible(0,

false); // 数据点可见

}

}else

if(e.getTrigger().getClickCount() == 1

&&

domainCrosshairState){//选择好位置

//释放时显示最终的线

XYSeriesCollection tsc = seriesInfo;//总的

@SuppressWarnings("unchecked")

List

seri = tsc.getSeries();

for(int

i = 0; i < seri.size(); i++){

//根据X轴判断是哪一条线

String key =

seri.get(i).getKey().toString();

if(select.equals(key)){

tsc.removeSeries(seri.get(i));

XYSeries a = new

XYSeries(select);

a.add(XValue, 0);

a.add(XValue,

yMaxValue);

tsc.addSeries(a);

seriesInfo = tsc;//赋值

}

}

}

}

});

chartPanel.addMouseListener(new MouseListener()

{

public void mouseReleased(MouseEvent e) {

//获取鼠标点击的位置与图的关系​

Point2D p =

chartPanel.translateScreenToJava2D(e.getPoint());

Rectangle2D plotArea =

chartPanel.getScreenDataArea();

XYPlot plot = (XYPlot)

jfreechart.getPlot(); // your plot

XValue =

plot.getDomainAxis().java2DToValue(p.getX(), plotArea,

plot.getDomainAxisEdge());

}

public void mousePressed(MouseEvent e) {}

public void mouseExited(MouseEvent e) {}

public void mouseEntered(MouseEvent e) {}

public void mouseClicked(MouseEvent e) {}

});

chartPanel.addMouseMotionListener(new

MouseMotionListener() {

public void mouseMoved(MouseEvent arg0) {}

public void mouseDragged(MouseEvent e) {}

});

java rectangle获取xy_JFreeChart 动态移动线 并求出两条线交点XY相关推荐

  1. java rectangle获取xy_Day06 Java基础学习笔记

    面向对象 当需求单一,或者简单时,我们一步一步去操作没问题,并且效率也挺高.可随着需求的更改,功能的增多,发现需要面对每一个步骤很麻烦了,这时就开始改进,能不能把这些步骤和功能再进行封装,封装时根据不 ...

  2. 【java】java反射机制,动态获取对象的属性和对应的参数值,并属性按照字典序排序,Field.setAccessible()方法的说明【可用于微信支付 签名生成】...

    方法1:通过get()方法获取属性值 package com.sxd.test.controller;public class FirstCa{private Integer num;private ...

  3. java jts获取线上任意一点到起点的距离

    java jts获取线上任意一点到起点的距离 近期项目要求计算某段公路上一辆车的运行轨迹,通过路上的设备实时获取车辆的经纬度信息并发送到后台接收. 抽象出来就是获取线上任意一点到起点的距离,按照一定每 ...

  4. 深入理解Java Proxy和CGLIB动态代理原理

    点击上方关注,每天进步一点点 动态代理在Java中有着广泛的应用,比如Spring AOP,Hibernate数据查询.测试框架的后端mock.RPC,Java注解对象获取等.静态代理的代理关系在编译 ...

  5. Java Proxy和CGLIB动态代理原理

    动态代理在Java中有着广泛的应用,比如Spring AOP,Hibernate数据查询.测试框架的后端mock.RPC,Java注解对象获取等.静态代理的代理关系在编译时就确定了,而动态代理的代理关 ...

  6. 【Android FFMPEG 开发】FFMPEG ANativeWindow 原生绘制 ( Java 层获取 Surface | 传递画布到本地 | 创建 ANativeWindow )

    文章目录 I . FFMPEG ANativeWindow 原生绘制 II . FFMPEG 原生绘制流程 III . Java 层获取 Surface 画布 IV . 传递 Surface 画布到 ...

  7. Java中的原生动态代理和CGLIB动态代理的原理,我不信你全知道!

    作者:CarpenterLee cnblogs.com/CarpenterLee/p/8241042.html 动态代理在Java中有着广泛的应用,比如Spring AOP,Hibernate数据查询 ...

  8. java取multipart_spring的multipartResolver和java后端获取的MultipartHttpServletRequest方法对比...

    这两天在用spring进行上传上遇到问题,今天进行了问题的排查,这个过程也增加了我看spring源码的兴趣!还是很有收获的! 首先先给A组提供了上传接口,并没有在spring的配置文件进行multip ...

  9. 使用jsPlumb插件实现动态连线功能

    这周去看了两天的羽毛球亚锦赛,工作有提前晚上加班做一些,但是技术文章却拉下了. 这段时间一直在寻找可以实现前端元素动态连线的功能,找了好几个库,考虑过用d3或者原生svg和canvas来实现,最后和同 ...

最新文章

  1. Mysql一些重要配置参数的学习与整理(一)
  2. Electron怎样进行渲染进程调试和使用浏览器和VSCode进行调试
  3. OpenCV学习(二十) :分水岭算法:watershed()
  4. 学习笔记:App-V测试错误代码4505CD-1690150A-20000194
  5. 基本信息项目目标文档
  6. 用批处理开启或关闭windows 服务
  7. Python制作代码雨
  8. 西电Pintos操作系统课程设计 实验四
  9. 北理计算机考研复试经验贴
  10. CCNA考试题库中英文翻译版及答案13
  11. 有域名得git是怎么弄得_部署到Github Pages上的博客,自定义域名,和免费域名如何申请...
  12. 11.4王者荣耀服务器维护中,4月11日全服不停机更新公告
  13. https网站安全证书提示已过期怎么办?
  14. 【声源定位】语音信号
  15. 拦截CSDN顶端广告
  16. Windows/Linux内核地址空间管理的异同
  17. springboot导入后Spring包飘红问题解决
  18. 银行活期存取款业务处理系统的数据流图
  19. Charles抓包乱码
  20. 齐向东透露工信部检测360浏览器

热门文章

  1. 强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例
  2. 一行CSS样式去除百度地图版权,去除百度地图右上角平移缩放控件的市县区文字
  3. 【杠精】问卷星防切屏解除方法-解除问卷星平台模拟考试防作弊禁止选中文本复制以及右键菜单的方法
  4. 史上最简单粗暴获取阿里巴巴iconfont图标,并引用到vant的方法(没有之一)
  5. GeoIP的使用 - PHP版
  6. 微软在.NET官网上线.NET 架构指南频道
  7. 词汇的理解 —— 汉译英(术语)
  8. python的沙盒环境virtualenv(二)--简单使用
  9. js正则表达式的使用详解
  10. Java面试查漏补缺