You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在运行时修改JFreeChart的X轴与Y轴标签?

如何在运行时修改JFreeChart的X/Y轴标签文本

嗨,我来帮你搞定这个问题!要在运行时修改JFreeChart的X轴和Y轴标签,你只需要从图表中获取对应的轴对象,然后调用它的setLabel()方法就可以了,正好可以无缝集成到你的多语言切换逻辑里。

具体实现步骤

  1. 从你的JFreeChart实例中获取XYPlot对象(因为你创建的是XY折线图,对应的Plot类型是XYPlot)
  2. 通过XYPlot分别获取X轴(Domain Axis,即横轴)和Y轴(Range Axis,即纵轴)
  3. 调用轴对象的setLabel()方法,传入从资源文件读取的多语言文本

修改你的resetLanguage方法

把下面这段新增代码加到你的方法里,就能实现轴标签的动态切换了:

public void resetLanguage(Locale locale) {
    displayLanguage = locale;
    resources = ResourceBundle.getBundle("DTTUI-Text", displayLanguage);
    
    // 修改图表标题
    chart.setTitle(resources.getString("GUI_CHART_TITLE"));
    // 修改系列描述
    measurement.setDescription(resources.getString("GUI_CHART_GRAPH_NAME"));
    
    // --- 新增:动态修改X/Y轴标签 ---
    XYPlot plot = chart.getXYPlot();
    // 更新X轴标签
    plot.getDomainAxis().setLabel(resources.getString("GUI_CHART_X_LABEL"));
    // 更新Y轴标签
    plot.getRangeAxis().setLabel(resources.getString("GUI_CHART_Y_LABEL"));
}

补充说明

  • 记得在你的DTTUI-Text资源文件中添加对应的键值对,比如:
    # 英文资源文件示例
    GUI_CHART_X_LABEL=X Axis
    GUI_CHART_Y_LABEL=Y Axis
    
    # 中文资源文件示例
    GUI_CHART_X_LABEL=横轴
    GUI_CHART_Y_LABEL=纵轴
    
  • 不管你初始化图表时有没有设置轴标签(比如你用ChartFactory.createXYLineChart传入的"x"和"y"),运行时调用setLabel()都会覆盖原有文本,完全满足多语言切换的需求。

内容的提问来源于stack exchange,提问作者skonline90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:54:22