用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())); } } }
相关推荐
4. **背景(Background)**:仪表盘的背景可以设置为单一颜色、渐变色或者自定义图像,以增强视觉效果。同时,还可以添加边框和阴影来突出仪表盘。 5. **区间(Ranges)**:区间用于划分仪表盘的数值范围,比如...
**JFreeChartDemo 仪表盘** JFreeChart 是一个强大的 Java 图形库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图以及仪表盘等。在给定的“JfreeChartDemo 仪表盘”中,我们将深入探讨如何使用 ...
JFreeChart是一个强大的Java库,专为创建高质量的图表而设计,其中包括仪表盘图表。仪表盘图表是一种有效的工具,可以清晰地展示各种指标,如性能、进度或健康状况,常用于管理和监控系统。本篇文章将深入探讨如何...
JFreeChart是一个强大的Java图表库,它允许开发者创建多种类型的静态和动态图表,包括饼图、柱状图、线图、散点图以及我们这里关注的仪表盘。在这个例子中,我们将探讨如何利用JFreeChart来创建一个动态的仪表盘。 ...
总结来说,这个资源包为Java开发者提供了一个完整的工具包,用于学习和使用JFreeChart创建仪表盘。通过源码,可以深入理解其内部机制;通过效果图,可以获取设计灵感;而类库则直接支持在项目中快速集成和使用。对于...
根据 JFreeChart 生成仪表盘, public static void main(String[] args) { System.out.println(new HC().getHC("TEST","123")); }
本文将深入探讨如何利用`JFreeChart`创建仪表盘(Dial Chart),并通过示例代码详细解释其配置方法。 #### 二、JFreeChart简介 `JFreeChart`是一款完全由Java编写的开源图表绘制类库,它能够生成各种类型的图表。...
JFreeChart提供了丰富的API,可以设置图表的各种属性,如标题、轴标签、颜色、数据系列等。 在Spring中,这个服务类可以被声明为一个bean,这样就可以通过@Autowired注解自动注入到其他需要生成图表的组件中。此外...
对于"java jfreechart 仪表盘显示空间"这个描述,它可能是指利用JFreeChart创建一个仪表盘界面来展示特定空间或者资源的使用情况,例如内存使用率、硬盘空间等。仪表盘的特性使其能够有效地显示复杂信息,使用户...
JFreeChart设置柱状图的宽度,当一个元素时不让显示那么宽。
1. **创建自定义图例项**: JFreeChart允许你为每个图表系列设置自定义的图例文本,这可以通过`XYSeries.setLegendItem(String)`方法完成。你可以根据需要提供任何字符串来代替默认的系列名称。 2. **图例颜色和样式...
在Java开发中,动态仪表盘显示是一项常用的功能,主要用于数据可视化,帮助用户快速理解复杂的业务信息。本项目涉及的是一个基于Java实现的查询显示页面,其中包含了一个筛选报警功能以及动态仪表盘显示。下面我们将...
JFreechart绘制大量柱子的时候显示挤压问题,添加滚动条可以上下拉显示,亲测可以使用,需要提前引入jfreechart包才不会报错
文档作者David Gilbert在此感谢所有为JFreeChart项目做出贡献的人,包括代码贡献者、文档编写者和支持团队。 **1.4 意见与建议** 欢迎读者提出任何意见和建议,帮助改善文档质量。 #### 2. 样例图表 **2.1 引言*...
jfreechart-1.5.2.jar,jfreechart|jfreechart
创建一个定时任务定期获取系统信息,并更新到仪表盘,这样就能看到实时的CPU和内存使用情况。 总的来说,Java通过`java.lang.management`包为我们提供了强大且灵活的系统监控能力。通过合理使用这些API,开发者可以...
除了股票线图,JFreeChart还支持创建仪表盘图表(Gauge Chart),用于直观地展示股票的某些指标,如市盈率、市值等。通过`GaugeDataset`和`GaugePlot`,我们可以定制表盘的范围、指针颜色、背景样式等。 **五、实战...
在本文中,我们将深入探讨如何使用JFreeChart来创建饼状图,并重点讲解如何设置语言以及解决可能出现的乱码问题。 首先,JFreeChart依赖于JCommon库,这是一个提供基础图形和数据处理功能的库。在我们的示例中,...
它在各种应用中广泛使用,包括报表、仪表盘、科学出版物等,提供了丰富的图表类型,如饼图、柱状图、线图、散点图和时间序列图等。 在描述中提到的链接指向了博客文章 "https://jose-bing.iteye.com/blog/1168128"...