0 0

如何为jfreechart的仪表盘设置Tooltip5

用Jfreechart的DialPlot来实现仪表盘功能,在仪表盘中可以显示文本,但这个文本如果太长的话,就显示不全,这种情况下我想通过设置Tooltip来辅助显示完整的文本,但找了好久,好像对于仪表盘,jfreechart无法设置Tooltip,搞了很久都搞不出来,我想退而求其次,让ChartPanel来显示tooltip也行,但通过下面的方法,tooltip根本没有显示:

ChartPanel localChartPanel = new ChartPanel(localJFreeChart);
      localChartPanel.setToolTipText("ddddd");
      localChartPanel.setDisplayToolTips(true);

请问哪位高手能帮忙指点下,非常感谢。

 

 

package demo;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GradientPaint;
import java.awt.Point;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.dial.DialBackground;
import org.jfree.chart.plot.dial.DialCap;
import org.jfree.chart.plot.dial.DialPlot;
import org.jfree.chart.plot.dial.DialPointer;
import org.jfree.chart.plot.dial.DialTextAnnotation;
import org.jfree.chart.plot.dial.DialValueIndicator;
import org.jfree.chart.plot.dial.StandardDialFrame;
import org.jfree.chart.plot.dial.StandardDialRange;
import org.jfree.chart.plot.dial.StandardDialScale;
import org.jfree.data.general.DefaultValueDataset;
import org.jfree.data.general.ValueDataset;
import org.jfree.ui.GradientPaintTransformType;
import org.jfree.ui.StandardGradientPaintTransformer;

public class DialDemo1 extends JFrame
{
  public DialDemo1(String paramString)
  {
    super(paramString);
    setDefaultCloseOperation(3);
    setContentPane(createDemoPanel());
  }

  public static JPanel createDemoPanel()
  {
    return new DemoPanel();
  }

  public static void main(String[] paramArrayOfString)
  {
    DialDemo1 localDialDemo1 = new DialDemo1("JFreeChart - Demo Dial 1");
    localDialDemo1.pack();
    localDialDemo1.setVisible(true);
  }

  static class DemoPanel extends JPanel
    implements ChangeListener
  {
    JSlider slider;
    DefaultValueDataset dataset = new DefaultValueDataset(10.0D);

    public DemoPanel()
    {
      super();
      JFreeChart localJFreeChart = createStandardDialChart("Dial Demo 1", "Temperature44444444444444444444444444444", this.dataset, -40.0D, 60.0D, 10.0D, 4);
      DialPlot localDialPlot = (DialPlot)localJFreeChart.getPlot();
      StandardDialRange localStandardDialRange1 = new StandardDialRange(40.0D, 60.0D, Color.red);
      localStandardDialRange1.setInnerRadius(0.52D);
      localStandardDialRange1.setOuterRadius(0.55D);
      localDialPlot.addLayer(localStandardDialRange1);
      StandardDialRange localStandardDialRange2 = new StandardDialRange(10.0D, 40.0D, Color.orange);
      localStandardDialRange2.setInnerRadius(0.52D);
      localStandardDialRange2.setOuterRadius(0.55D);
      localDialPlot.addLayer(localStandardDialRange2);
      StandardDialRange localStandardDialRange3 = new StandardDialRange(-40.0D, 10.0D, Color.green);
      localStandardDialRange3.setInnerRadius(0.52D);
      localStandardDialRange3.setOuterRadius(0.55D);
      localDialPlot.addLayer(localStandardDialRange3);
      GradientPaint localGradientPaint = new GradientPaint(new Point(), new Color(255, 255, 255), new Point(), new Color(170, 170, 220));
      DialBackground localDialBackground = new DialBackground(localGradientPaint);
      localDialBackground.setGradientPaintTransformer(new StandardGradientPaintTransformer(GradientPaintTransformType.VERTICAL));
      localDialPlot.setBackground(localDialBackground);
      localDialPlot.removePointer(0);
      DialPointer.Pointer localPointer = new DialPointer.Pointer();
      localPointer.setFillPaint(Color.yellow);
      localDialPlot.addPointer(localPointer);
      ChartPanel localChartPanel = new ChartPanel(localJFreeChart);
      localChartPanel.setToolTipText("ddddd");
      localChartPanel.setDisplayToolTips(true);
      localChartPanel.setPreferredSize(new Dimension(400, 400));
      this.slider = new JSlider(-40, 60);
      this.slider.setMajorTickSpacing(10);
      this.slider.setPaintLabels(true);
      this.slider.addChangeListener(this);
      add(localChartPanel);
      add(this.slider, "South");
    }

    public static JFreeChart createStandardDialChart(String paramString1, String paramString2, ValueDataset paramValueDataset, double paramDouble1, double paramDouble2, double paramDouble3, int paramInt)
    {
      DialPlot localDialPlot = new DialPlot();
      localDialPlot.setDataset(paramValueDataset);
      localDialPlot.setDialFrame(new StandardDialFrame());
      localDialPlot.setBackground(new DialBackground());
      DialTextAnnotation localDialTextAnnotation = new DialTextAnnotation(paramString2);
      localDialTextAnnotation.setFont(new Font("Dialog", 1, 14));
      localDialTextAnnotation.setRadius(0.7D);
      localDialPlot.addLayer(localDialTextAnnotation);
      DialValueIndicator localDialValueIndicator = new DialValueIndicator(0);
      localDialPlot.addLayer(localDialValueIndicator);
      StandardDialScale localStandardDialScale = new StandardDialScale(paramDouble1, paramDouble2, -120.0D, -300.0D, 10.0D, 4);
      localStandardDialScale.setMajorTickIncrement(paramDouble3);
      localStandardDialScale.setMinorTickCount(paramInt);
      localStandardDialScale.setTickRadius(0.88D);
      localStandardDialScale.setTickLabelOffset(0.15D);
      localStandardDialScale.setTickLabelFont(new Font("Dialog", 0, 14));
      localDialPlot.addScale(0, localStandardDialScale);
      localDialPlot.addPointer(new DialPointer.Pin());
      DialCap localDialCap = new DialCap();
      localDialPlot.setCap(localDialCap);
      return new JFreeChart(paramString1, localDialPlot);
    }

    public void stateChanged(ChangeEvent paramChangeEvent)
    {
      this.dataset.setValue(new Integer(this.slider.getValue()));
    }
  }
}

 

 

 

2013年5月10日 11:35
  • 大小: 50.1 KB
目前还没有答案

相关推荐

    JfreeChart 仪表盘2

    4. **背景(Background)**:仪表盘的背景可以设置为单一颜色、渐变色或者自定义图像,以增强视觉效果。同时,还可以添加边框和阴影来突出仪表盘。 5. **区间(Ranges)**:区间用于划分仪表盘的数值范围,比如...

    JfreeChartDemo 仪表盘

    **JFreeChartDemo 仪表盘** JFreeChart 是一个强大的 Java 图形库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图以及仪表盘等。在给定的“JfreeChartDemo 仪表盘”中,我们将深入探讨如何使用 ...

    利用jfreechart制作仪表盘

    JFreeChart是一个强大的Java库,专为创建高质量的图表而设计,其中包括仪表盘图表。仪表盘图表是一种有效的工具,可以清晰地展示各种指标,如性能、进度或健康状况,常用于管理和监控系统。本篇文章将深入探讨如何...

    利用jfreechart制作动态仪表盘

    JFreeChart是一个强大的Java图表库,它允许开发者创建多种类型的静态和动态图表,包括饼图、柱状图、线图、散点图以及我们这里关注的仪表盘。在这个例子中,我们将探讨如何利用JFreeChart来创建一个动态的仪表盘。 ...

    JFreeChart Java仪表盘制作,源码,类包,效果图整体打包

    总结来说,这个资源包为Java开发者提供了一个完整的工具包,用于学习和使用JFreeChart创建仪表盘。通过源码,可以深入理解其内部机制;通过效果图,可以获取设计灵感;而类库则直接支持在项目中快速集成和使用。对于...

    根据 JFreeChart 生成仪表盘

    根据 JFreeChart 生成仪表盘, public static void main(String[] args) { System.out.println(new HC().getHC("TEST","123")); }

    jfreechart 仪表应用详解

    本文将深入探讨如何利用`JFreeChart`创建仪表盘(Dial Chart),并通过示例代码详细解释其配置方法。 #### 二、JFreeChart简介 `JFreeChart`是一款完全由Java编写的开源图表绘制类库,它能够生成各种类型的图表。...

    Spring+JFreeChart 自动生成统计图

    JFreeChart提供了丰富的API,可以设置图表的各种属性,如标题、轴标签、颜色、数据系列等。 在Spring中,这个服务类可以被声明为一个bean,这样就可以通过@Autowired注解自动注入到其他需要生成图表的组件中。此外...

    Dialplot.zip_dialplot java_site:www.pudn.com_仪表盘

    对于"java jfreechart 仪表盘显示空间"这个描述,它可能是指利用JFreeChart创建一个仪表盘界面来展示特定空间或者资源的使用情况,例如内存使用率、硬盘空间等。仪表盘的特性使其能够有效地显示复杂信息,使用户...

    JFreeChart设置柱状图的宽度

    JFreeChart设置柱状图的宽度,当一个元素时不让显示那么宽。

    JFreechart自定义图例

    1. **创建自定义图例项**: JFreeChart允许你为每个图表系列设置自定义的图例文本,这可以通过`XYSeries.setLegendItem(String)`方法完成。你可以根据需要提供任何字符串来代替默认的系列名称。 2. **图例颜色和样式...

    java动态仪表盘显示

    在Java开发中,动态仪表盘显示是一项常用的功能,主要用于数据可视化,帮助用户快速理解复杂的业务信息。本项目涉及的是一个基于Java实现的查询显示页面,其中包含了一个筛选报警功能以及动态仪表盘显示。下面我们将...

    jfreechart带滚动条(纵向滑动)

    JFreechart绘制大量柱子的时候显示挤压问题,添加滚动条可以上下拉显示,亲测可以使用,需要提前引入jfreechart包才不会报错

    JFreeChart 1.0.9 开发文档

    文档作者David Gilbert在此感谢所有为JFreeChart项目做出贡献的人,包括代码贡献者、文档编写者和支持团队。 **1.4 意见与建议** 欢迎读者提出任何意见和建议,帮助改善文档质量。 #### 2. 样例图表 **2.1 引言*...

    jfreechart-1.5.2.jar,jfreechart|jfreechart

    jfreechart-1.5.2.jar,jfreechart|jfreechart

    java写的用仪表盘读CPU

    创建一个定时任务定期获取系统信息,并更新到仪表盘,这样就能看到实时的CPU和内存使用情况。 总的来说,Java通过`java.lang.management`包为我们提供了强大且灵活的系统监控能力。通过合理使用这些API,开发者可以...

    jfreechart ajax 实时 股票图 表盘图

    除了股票线图,JFreeChart还支持创建仪表盘图表(Gauge Chart),用于直观地展示股票的某些指标,如市盈率、市值等。通过`GaugeDataset`和`GaugePlot`,我们可以定制表盘的范围、指针颜色、背景样式等。 **五、实战...

    jfreeChart 例子,并设置语言,防止乱码

    在本文中,我们将深入探讨如何使用JFreeChart来创建饼状图,并重点讲解如何设置语言以及解决可能出现的乱码问题。 首先,JFreeChart依赖于JCommon库,这是一个提供基础图形和数据处理功能的库。在我们的示例中,...

    jfreechart

    它在各种应用中广泛使用,包括报表、仪表盘、科学出版物等,提供了丰富的图表类型,如饼图、柱状图、线图、散点图和时间序列图等。 在描述中提到的链接指向了博客文章 "https://jose-bing.iteye.com/blog/1168128"...

Global site tag (gtag.js) - Google Analytics