首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JFreeChart:在鼠标单击时获取数据源值

JFreeChart是一个开源的Java图表库,用于创建各种类型的图表,包括折线图、柱状图、饼图、散点图等。它提供了丰富的功能和灵活的配置选项,使开发人员能够轻松地创建高质量的图表。

在JFreeChart中,要在鼠标单击时获取数据源值,可以通过以下步骤实现:

  1. 创建一个图表对象:使用JFreeChart的构造函数创建一个图表对象,指定图表的类型和标题等属性。
  2. 创建一个数据集对象:根据需要的图表类型,创建相应的数据集对象,例如DefaultCategoryDataset用于柱状图,DefaultPieDataset用于饼图等。将数据源值添加到数据集中。
  3. 创建一个图表面板对象:使用ChartPanel类创建一个图表面板对象,将图表对象作为参数传入。
  4. 添加鼠标点击事件监听器:通过ChartPanel的addChartMouseListener方法,添加一个鼠标点击事件监听器,该监听器将在鼠标单击时触发。
  5. 在鼠标点击事件监听器中获取数据源值:在监听器的chartMouseClicked方法中,通过ChartMouseEvent对象获取鼠标点击的坐标,然后使用ChartRenderingInfo对象的getEntity方法获取与该坐标相关联的实体对象。根据实体对象的类型,可以进一步获取数据源值。

以下是一个示例代码,演示如何在JFreeChart中实现在鼠标单击时获取数据源值:

代码语言:java
复制
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartMouseEvent;
import org.jfree.chart.ChartMouseListener;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;

import java.awt.*;
import java.awt.event.MouseEvent;

public class JFreeChartExample extends ApplicationFrame {

    public JFreeChartExample(String title) {
        super(title);
        // 创建数据集
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(1, "Series 1", "Category 1");
        dataset.addValue(2, "Series 1", "Category 2");
        dataset.addValue(3, "Series 1", "Category 3");

        // 创建图表
        JFreeChart chart = ChartFactory.createBarChart(
                "Example Chart", "Category", "Value", dataset);

        // 创建图表面板
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new Dimension(500, 300));

        // 添加鼠标点击事件监听器
        chartPanel.addChartMouseListener(new ChartMouseListener() {
            @Override
            public void chartMouseClicked(ChartMouseEvent event) {
                // 获取鼠标点击的坐标
                int x = event.getTrigger().getX();
                int y = event.getTrigger().getY();

                // 获取与坐标相关联的实体对象
                ChartRenderingInfo info = chartPanel.getChartRenderingInfo();
                EntityCollection entities = info.getEntityCollection();
                ChartEntity entity = entities.getEntity(x, y);

                // 判断实体对象类型并获取数据源值
                if (entity instanceof CategoryItemEntity) {
                    CategoryItemEntity itemEntity = (CategoryItemEntity) entity;
                    Comparable rowKey = itemEntity.getRowKey();
                    Comparable columnKey = itemEntity.getColumnKey();
                    Number value = dataset.getValue(rowKey, columnKey);
                    System.out.println("Clicked value: " + value);
                }
            }

            @Override
            public void chartMouseMoved(ChartMouseEvent event) {
                // Do nothing
            }
        });

        setContentPane(chartPanel);
    }

    public static void main(String[] args) {
        JFreeChartExample example = new JFreeChartExample("JFreeChart Example");
        example.pack();
        example.setVisible(true);
    }
}

在上述示例中,创建了一个柱状图,并添加了鼠标点击事件监听器。当用户在图表上单击某个柱子时,会输出该柱子对应的数据源值。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,无法提供相关链接。但可以根据需要使用腾讯云的云服务器、云数据库、云存储等产品来支持和扩展JFreeChart的应用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ireport使用教程_insertselective用法

之后报表的空白处单击,如此即可把对象添加到报表,然后拖动对象的边框,使它的大小合适,双击即可对对象中的文本进行快速编辑。...注:一个对象不能横跨两个区域,即不能既columnHeader里又在detail里。 鼠标右击对象,弹出如下菜单: 点击”属性”,编辑对象的属性。...Pattern里,可以定义输出的格式,输出时间和日期或者货币尤为有用。...(Fields):是数据源抽取出来的,希望报表中出现的数据库内容。...需要注意的是,根据不同的参数类型,设置参数的缺省要使能与参数类型匹配,即字符型的参数设置缺省要用””把括起来,如果是数据型的则不能加””。

2.3K30

ireport使用教程视频_proe拖动图形

之后报表的空白处单击,如此即可把对象添加到报表,然后拖动对象的边框,使它的大小合适,双击即可对对象中的文本进行快速编辑。...注:一个对象不能横跨两个区域,即不能既columnHeader里又在detail里。 鼠标右击对象,弹出如下菜单: 点击”属性”,编辑对象的属性。...Pattern里,可以定义输出的格式,输出时间和日期或者货币尤为有用。...):是数据源抽取出来的,希望报表中出现的数据库内容。...需要注意的是,根据不同的参数类型,设置参数的缺省要使能与参数类型匹配,即字符型的参数设置缺省要用””把括起来,如果是数据型的则不能加””。

2.7K20
  • Xcelsius(水晶易表)系列6——统计图钻取功能

    统计图通过启用钻取功能之后,可以通过鼠标单击该图表的单一序列,使图表序列成为动态选择器,鼠标单击之后会将对应序列数据传递到一个定义好的单元格位置,而利用该单元格区域位置数据所创建的图表就可以接收到动态数据源...任何一行都可以,只有仪表盘完成之后,鼠标单击饼图后,动态交互可以改变初始位置的行数据【目标区域留白当然也是可以的,但是画布里作图没有数据显示】)。...原数据区域选择A6:Z10单元格区域,目标选择A2:Z2。 以上最为关键的两个参数就是原数据区域和目标数据区域,按照如上格式设置好了之后,当仪表盘导出并用鼠标单击某一扇区(以北非为例)。...通过向下钻取功能,当用鼠标单击北非所在扇区,软件会在饼图的数据源(A6:A10;N6:N10)中首先按照行标签找到北非所在行,然后原数据区域(A6:Z10)匹配到北非的行数据(A6:Z6),然后将A6...设置完成之后,你可以通过预览功能超看饼图扇区鼠标点击是否呈现可选状态,如果可选则设置成功了。

    1.6K70

    Excel图表学习60: 给多个数据系列添加趋势线

    步骤1:图表中单击右键,快捷菜单中选择“选择数据”命令,如下图2所示。 ? 步骤2:弹出的“选择数据源”对话框中,单击“添加”按钮,弹出“编辑数据系列”对话框,如下图3所示。 ?...单击X轴系列右侧的单元格选择按钮,用鼠标选择工作表中的单元格区域B3:B11,文本框中输入逗号,然后再用鼠标选择工作表中的单元格区域D3:D11,再在文本框中输入逗号,接着再用鼠标选择工作表中的单元格区域...将Y轴系列中的“={1}”删除,单击其右侧的单元格选择按钮,用鼠标选择工作表中的单元格区域C3:C11,文本框中输入逗号,然后再用鼠标选择工作表中的单元格区域E3:E11,再在文本框中输入逗号,接着再用鼠标选择工作表中的单元格区域...单击“确定”按钮,回到“选择数据源”对话框,如下图5所示。 ? 当然,你也可以选择图表后,直接在公式栏输入Seires公式。...步骤3:单击选取新系列,然后单击图表右侧出现的“+”号,弹出的图表元素中选取“趋势线”前的复选框,如下图7所示。 ?

    7.6K41

    VS2010下进行单元测试 C#

    3)可按如下步骤建立单元测试 (1)Add方法体内,单击鼠标右键,菜单中选择"创建单元测试", ?...2)测试视图窗口中选择需要配置成数据驱动方式的单元测试方法,然后按F4,打开单元测试的属性窗口 ? 3)编辑"数据连接字符串"属性,"属性"窗口中单击该属性,然后单击省略号 (…)。...当您单击"属性"窗口的列中的下拉列表,将会列出所连接的数据库中的表。从此列表中选择的表就是在运行单元测试将检索其中的行的表。...6)"数据访问方法",请选择"顺序"或"随机";默认为"顺序"。此设置表示从数据源的表中检索记录的顺序。 可以看到,测试方法前面已经添加了一行: ?...3.2、读取Excel的方法: 1)桌面新建一个txt文件,更改文件名为data.dsn 2)选中"数据库连接字符串",单击右边列的按钮,更改数据源为Microsoft ODBC数据源,点击"确定"按钮

    1.7K10

    强强联合!PBI文件做数据分析服务器,PA实现自动数据更新 | PBI实战应用

    、友好名称: 单击完成后,将会进入Excel里的数据透视表制作过程,此时我们可以看到,Excel里即可以调用PBI文件里的可见表的全部内容,而且,PBID里创建的度量,均可以使用: 这样,你的同事也就可以通过...- 3 - PBID数据源及文件刷新 前面我们介绍了用Power Automate实现往网站数据的爬取、公司系统数据的导出,这些流程都可以Power Automate里进行整合,实现所有数据源层面的更新...Step-01 新建流后,添加“聚焦窗口”步骤 聚焦窗口使用“按标题和/或类”的查找模式,并可以通过“选择窗口”功能(类似于前面文章中捕获UI元素的方式,在出现红框,按Ctrl键+鼠标左键)获得...PBI窗口的标题和类名称: Step-02 单击“主页”菜单 添加“单击窗口中的UI元素”操作,参数中添加UI元素(主页): Step-03 单击“刷新”按钮 添加“单击窗口中的UI元素”操作,...从这个例子可以看出,Power BI能为数据分析、模型共享提供很大的帮助,而Power Automate能在PBI的数据源自动获取、自动更新等等方面提供支持,每个工具都有其特有的用处,学会综合灵活应用,

    2.1K50

    WinCC 中如何获取在线 表格控件中数据的最大 最小和时间戳

    图 2> 2. WinCC 画面中添加表格控件,配置控件的数据源。并设置必要的参数。关键参 数设置如图 3 所示。 3.打开在线表格控件的属性对话框。...设置控件的数据源为在线表格控件。属性对话框的 “列” 页,激活 “统计” 窗口 项,并配置显示列的内容和顺序。...6.画面中配置文本域和输入输出域 用于显示表格控件查询的开始时间和结束 间,并组态按钮。用于执行数据统计和数据读取操作。如图 7 所示。...按钮的“单击鼠标”动作下创建 VBS 动作,编写脚本用于执行统计和数据读取操作。其中“执行统计”按钮下的脚本如图 8 所示。用于获取统计数据并在 RulerControl件中显示。...点击 “执行统计” 获取统计的结果。如图 11 所示。 3.最后点击 “读取数据” 按钮,获取最大、最小和时间戳。如图 12 所示。

    9.3K11

    Grafana使用教程

    2、配置Grafana启用zabbix插件 登录到grafana,移动鼠标到grafana左上角,单击选择齿轮图标的向下按钮,然后选择“Zabbix”选项卡,选择“Pluugin Config”...3、配置Zabbix数据源 添加新数据源单击选择齿轮图标的向下按钮,打开 “Data Sources” ,单击“Add new”。 ? ?...新建的仪表板中添加图面板 ? ? 图面板Grafana中只是命名图。它提供了一组丰富的图形选项。如下图所示: ? ? 单击标题面板可打开一个菜单框。...,所有上述所说的同一间可能都是不正确的。...正则表达式:如果你需要筛选或提取价值的一部分,那就使用正则表达式。 选择选项(Selection Options) 多值:启用,如果你想在同一间选择多个

    15.1K40

    CodeWave系列:3.CodeWave 智能开发平台 页面布局及呈现

    属性: 数据属性 数据表格、数据列表等可以设置数据源的组件会有数据属性。不同组件的数据源数据会有一些差别,这里说明比较通用的属性,组件特有的属性每个组件的说明文档中详细阐述。...数据源:组件所展示数据的输入源,可以是逻辑、变量。 数据类型:数据源返回的数据的类型。...事件:鼠标事件,与鼠标操作相关的事件 事件名 触发条件 点击 鼠标左键单击对应组件 双击 鼠标左键双击对应组件 右键点击 鼠标右键单击对应组件 鼠标按下 鼠标任意键组件区域内按下 鼠标释放 鼠标任意键组件区域内释放...鼠标移入 鼠标指针移入组件区域 鼠标移出 鼠标指针移出组件区域 事件:手势事件,移动端与手势操作相关的事件: 事件名 触发条件 点击 手指单击指定区域 事件:组件事件,组件内部实现的事件。...页面事件主要有: 事件名 触发条件 其他说明 进入时 页面刚打开 只能做一些数据处理,不能获取dom节点进行操作 进入后 页面节点挂载 可进行数据处理,dom操作 更新 页面更新 可进行数据处理

    26510

    Excel 如何简单地制作数据透视图

    1、根据普通数据表创建数据透视图 选择数据源区域中任意单元格,“插入”选项卡中单击“数据透视图”下拉按钮; 在打开的对话框中设置好数据源区域及放置位置,通常保持默认设置即可,单击“确定”按钮,即可创建一张数据透视表的数据透视图...3、更改数据透视图的图表类型 通过数据透视表创建数据透视图,可以选择任意需要的图表类型。例如,汽车销售表中直接创建的数据透视图不太理想,需要更改成折线图。...4、更改数据透视图的数据源 数据透视图的数据源是与其绑定的数据透视表,并不能随意更改,但可以通过将不同的字段放置不同的区域,来改变数据透视图的显示。...单击图表上的任意字段按钮,右击,选择“隐藏图表上的所有字段按钮”。...调整数据标签位置,拖动鼠标指针调整图表高度。使其美观。

    42720

    使用鼠标

    示例二: 处理鼠标左键单击事件         鼠标左键客户区被单击发来的消息: WM_LBUTTONDOWN 1 switch(message) 2 { 3 case...三、客户区鼠标消息     与键盘消息不同, 键盘消息中, Windows只把键盘消息发送到当前具有输入焦点的窗口, 而鼠标消息无论窗口是否获取焦点, 只要鼠标经过客户区, 或者客户区内被单击窗口过程都会收到鼠标消息...鼠标单击         鼠标客户区单击各个鼠标按键所产生的消息如下: 鼠标按键 按下产生的消息 释放产生的消息 左键 WM_LBUTTONDOWN WM_LBUTTONUP 中键 WM_MBUTTONDOWN...#define HTHELP 21 //在帮助按钮上     这样获取非客户区消息我们就可以根据 wParam 中的判断鼠标在窗口的位置了...return 0 ;     首先捕获 鼠标左键非客户区的单击事件, 然后再通过 wParam 判断鼠标在窗口的位置, 这里获取鼠标位置是通过 LOWORD 和 HIWORD 宏完成的, 还有两个功能相同的宏也可以用来获取

    2.7K100

    TRTC 接入实时语音识别

    单击【立即开始】,输入应用名称,例如TestTRTC,单击【创建应用】。 步骤2:下载 SDK 和 Demo 源码 鼠标移动至对应卡片,下载相关 SDK 及配套的 Demo 源码。...iOS:单击【Github】跳转至 Github(或单击【ZIP】) Mac:单击【Github】跳转至 Github(或单击【ZIP】) 下载完成后,返回实时音视频控制台,单击【我已下载,下一步...返回实时音视频控制台,单击【粘贴完成,下一步】。 单击【关闭指引,进入控制台管理应用】。 步骤4:编译运行 终端窗口进入源码的 TRTCScenesDemo > Podfile 文件所在目录。... App 的 Info.plist 中添加以下两项,分别对应麦克风和摄像头系统弹出授权对话框的提示信息。...//1.TRTCAudioFrameDelegate 协议是 TRTC 获取音频源的协议,由于 ASR 识别16k或8k采样率的音频数据,所以需要设置 setAudioQuality 为 TRTCCloudDef

    4K70

    一篇带你了解如何使用纯前端类Excel表格构建现金流量表

    - 字段列表面板将出现在右侧 将鼠标悬停在 Start 分支上并通过单击绿色 + 按钮添加字段 *请注意,你可以使用“x”按钮删除字段并使用位于分支右侧的设置修改这些字段 拖动模板范围所需单元格中的字段...设置选取器的开始、结束年份和高度 然后,我们进行计算为包含月份的单元格指定一个名称。 公式选项卡上,选择名称管理器 弹出窗口中,单击新建按钮 设置单元格的名称。...这允许我们稍后 CellClick 上检索单元格。...作为第二个参数,它需要一个 OBJECT,该 OBJECT 从位于数据源表的 Table1 中获取数据。...否则,它会更新 currentSelection,因此,所有用于获取余额和有关交易信息的公式都会在它们指向更改的选定日期给出正确的结果。

    10.9K20

    Excel图表学习72:制作里程碑图

    图4 4.从“图表工具——设计”选项卡中单击“选择数据”按钮,弹出“选择数据源”对话框,如下图5所示。 ?...图8 7.单击“添加”按钮,“编辑数据系列”中,使用“位置”列作为系列,如下图9所示。 ? 图9 8.单击选择“任务”系列,单击右键,从快捷菜单中选择“更改系列图表类型”,如下图10所示。 ?...图11 10.在任一柱形上单击鼠标右键,选择“设置数据系列格式”,“系列选项”中,选择系列绘制在次坐标轴,如下图12所示。 ? 图12 11.删除右侧的次坐标轴,结果如下图13所示。 ?...图14 13.单击选择柱形系列,单击鼠标右键,从快捷菜单中选择“添加数据标签”,如下图15所示。 ?...图21 19.选择水平轴,单击鼠标右键,从快捷菜单中选择“设置坐标轴格式”,如下图22所示。 ? 图22 “设置坐标轴格式”中,选择标签位置为“低”,如下图23所示。 ?

    4.7K20

    Excel2010 柱形图与折线图制表

    步骤: 1、选择A/B/C所在全部数据区域 2、插入→ 柱状图→ 二维柱状图 3、在生成的柱状图中选中表示合格率的柱子,单击鼠标右键,选择“设置数据系列格式(F)” 4、弹出的“设置数据系列格式”对话框中...:选中“次坐标轴(S)” → 关闭; 5、设计→ 更改图表类型 6、弹出的“更改图表类型”对话框中:选择折线图; 结果如下: ?...步骤: 1、选择月份、合格、合格率所在区域(A1C4) 2、插入→ 柱状图→ 二维柱状图 3、在生成的柱状图中选中表示合格率的柱子,单击鼠标右键,选择“数据系列格式(F)” 4、弹出的“设置数据系列格式...8、选择图表区域,设计→ 选择数据 9、“选择数据源”对话框中选中“合格”系列,鼠标单击“编辑(T)”; 10、弹出的“轴标签”对话框中:选择“总数”数据所在单元格区域($D$2:$D$4);→ ...确定; 11、“选择数据源”对话框中鼠标单击“确定”。

    1.1K20

    Grafana快速入门:InfluxDB数据源以及曲线图表仪表盘配置

    一、添加数据源 Grafana默认支持的数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch Grafana支持同时绑定多套数据源...InfluxDB数据源对应数据库名称 User InfluxDB数据源账号密码 数据源添加/更新成功后会有如下提示: ?...将鼠标移动到行左上角的菜单图标,就会显示行操作菜单 ? 这里我们选择Add Panel即可 ? 这里我们以曲线图(Graph)为例 ? 图表面板配置 鼠标单击图表标题可以呼出图表菜单 ?...SELECT-Field 对应选的字段,可根据需求增减 SELECT-mean() 选择的字段对应的InfluxDB的函数 GroupBY-time() 根据时间分组 GROUPBY-fill() 当不存在数据,...以null为默认填充 以下是配置示例: ?

    7.5K30

    怎么自动登录公司客户端系统、导出数据? | Power Automate实战案例

    5、发送鼠标单击 通过前面的步骤,我们打开了应用程序的窗口,此时便可以向窗口的特定位置“发送鼠标单击”,达到点击某个按钮,或者点入某个文本框准备输入内容的效果。...这里的设置主要涉及3个要点: 打开“移动鼠标”开关,填入要单击鼠标的位置,即表示将鼠标移动到相应位置然后单击(不是单击后再移动到相应位置); 对于有多个屏幕(如2个显示器)的朋友,设置的“相对于”选项...Power Automate提供了当前光标位置的识别功能,我们切换到要点击的窗口,将鼠标移动到要点击的位置,然后并按Ctrl+Shift键即可以获取当前光标位置并填写到配置窗口的X、Y中(虽然切换窗口看不到这个设置窗口...小技巧——插入特殊键:有很多系统的很多步骤里,是可以填写内容后按回车(或其它键)触发后续内容的,比如登录,填完密码按回车即开始登录系统,这时,可以“发送键”步骤中,插入特殊键,实现相应效果: 后面的设置其实就是不断的发送鼠标单击...流程一旦设置好后,就可以重复执行,一项任务就是点一下按钮的事情,

    3.7K70

    javascript入门笔记5-事件

    比如说,当用户单击按钮或者提交表单数据,就发生一个鼠标单击(onclick)事件,需要浏览器做出处理,返回给用户一个结果。...3.鼠标单击事件( onclick ) onclick是鼠标单击事件,当在网页上单击鼠标,就会发生该事件。同时onclick事件调用的程序块就会被执行,通常与按钮一起使用。...鼠标移开事件(onmouseout) 鼠标移开事件,当鼠标移开当前对象,执行onmouseout调用的程序。 <!...提示:获取元素的设置和获取方法为:例:赋值:document.getElementById(“id”).value = 1; 取值:var = document.getElementById(“id”..."txt2").value; //获取选择框的 var c=document.getElementById("select").value; //获取通过下拉框来选择的来改变加减乘除的运算法则

    1.2K30

    Power Query 真经 - 第 1 章 - 基础知识

    单击【数据】选项卡【获取数据】【 查询选项】。...单击【数据】【获取数据】【来自文件】【从文本 / CSV】。 这相当于 Power BI 桌面版中的以下操作。 2. 单击【主页】【获取数据】【更多】【文件】【文本 / CSV】。... Excel 中,会发现这个连接器就在【数据】选项卡上的【获取数据】按钮旁边。而在 Power BI 中,连接器就在【获取数据】菜单栏的第一层子菜单【常见数据源】,不需要单击【更多】后浏览。...曾经还开玩笑说,两者区别其实在于,是想均匀地磨损鼠标按钮,还是给鼠标左键施加更多的压力。...查看查询,大家都知道原始数据源必须在查询的最开始被引用,幸运的是,“Souce” 步骤有一个齿轮图标。 选择 “Souce” 步骤。 单击 “齿轮”。

    4.9K31

    学会这个,领导要的结果立马就有

    数据透视表特别容易操作,就靠鼠标拖动几下,立马就能从多种维度来对数据进行分析。 问题1:汇总销售阶段与赢单率交叉表的金额合计 我们可以画个图,看看行、列分别是什么数据。...如图: image.png (3)【数据透视表字段】对话框中,按照问题的需求,单击“销售阶段”字段,按住鼠标左键不放将它拖到“行”区域内;同样的方法,分别把“赢单率”字段拖到“列”区域;把“金额...(1)按销售阶段汇总金额 和问题1的步骤一样,首先,创建数据透视表图:单击数据源区域任一单元格-【插入】-【数据透视表】。...【数据透视表字段】中,单击“销售阶段”字段,并按住鼠标左键将它拖到“行”区域内;同样的方法,把“金额”字段拖到“”区域内;把“所属领域”拖到“筛选”区域。...如上面制作饼图的时候,当我们想看不同领域的情况,我们就要对筛选框里的所属领域字段进行下拉,然后选择对应的领域。

    2.5K00
    领券