import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableModel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.LegendTitle;
import org.jfree.data.category.DefaultCategoryDataset;
public class Test {
static class DemoTableModel extends AbstractTableModel implements
TableModel {
private static final long serialVersionUID = 1L;
private Object[][] data;
public DemoTableModel(int rows, int column) {
this.data = new Object[rows][column];
}
public int getColumnCount() {
return 16;
}
public int getRowCount() {
return this.data.length;
}
public Object getValueAt(int row, int column) {
return this.data[row][column];
}
public void setValueAt(Object value, int row, int column) {
this.data[row][column] = value;
fireTableDataChanged();
}
public String getColumnName(int column) {
return null;
}
}
public static JTable getJTable(int row, int column) {
DemoTableModel model = new DemoTableModel(row, column);
JTable jtable = new JTable(model);
return jtable;
}
public static void main(String args[]) {
String[] str = new String[16];
for (int i = 1; i < 13; i++) {
str[i - 1] = "08" + (i < 10 ? ("0" + i) : "" + i);
}
str[12] = "0901";
str[13] = "0902";
str[14] = "0903";
str[15] = "0904";
// 折点值
float[] value = new float[16];
for (int i = 0; i < value.length; i++) {
value[i] = i + 2;
}
DefaultCategoryDataset dgd = new DefaultCategoryDataset();
for (int i = 0; i < value.length; i++) {
dgd.addValue(value[i], "2007年", str[i]);
}
JFreeChart jfc = ChartFactory.createLineChart("标题", "", "二", dgd,
PlotOrientation.VERTICAL, true, true, false);
// 取得统计图表的第一个图例
LegendTitle legend = jfc.getLegend(0);
legend.setVisible(false);
// 按曲线图创建chartPanel
ChartPanel chartPanel = new ChartPanel(jfc);
JPanel content = new JPanel(new BorderLayout());
content.add(chartPanel, BorderLayout.CENTER);
// JLayeredPane jlp=new JLayeredPane();
// jlp.add(chartPanel,new Integer(100));
// 创建table
final MyCellRenderer2 mcr = new MyCellRenderer2();
JTable jtable = new JTable(new DemoTableModel(3, value.length + 1)) {
public TableCellRenderer getCellRenderer(int row, int column) {
return mcr;
}
};
// JTable jtable = getJTable(3, value.length + 1);
JPanel tablePanel = new JPanel(new BorderLayout());
tablePanel.setPreferredSize(new Dimension(800, 52));
tablePanel.add(new JScrollPane(jtable));
// jtable.setForeground(Color.RED);
// jtable.setSelectionForeground(Color.RED);
jtable.setValueAt("黄色标题", 0, 0);
jtable.setValueAt("蓝色标题", 1, 0);
jtable.setValueAt("红色标题", 2, 0);
content.add(tablePanel, BorderLayout.SOUTH);
JFrame jf = new JFrame();
jf.add(content);
// jf.add(jlp);
jf.pack();
jf.setVisible(true);
}
}
class MyCellRenderer2 extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
Component cell = super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
// 指定行的颜色
if (row == 0)
cell.setForeground(Color.YELLOW);
if (row == 2)
cell.setForeground(Color.BLUE);
if (row == 1)
cell.setForeground(Color.RED);
return cell;
}
}
已经满足楼主的要求,我已经调试通过!
2009年8月24日 16:20
相关推荐
但总体来说,JFreeChart 提供了直观且灵活的接口,让开发者能够轻松创建和定制各种图表。 总的来说,JFreeChart 是一个强大的 Java 图表库,适用于各种数据分析和可视化需求。通过简单的例子,我们可以快速掌握其...
使用JFreeChart创建图表.ppt
最后,我们可以使用ChartPanel将图表显示在JPanel中。 在绘制风速风向玫瑰图时,我们需要设置雷达图像网格数量和折现图像颜色。这些设置可以通过PolarPlot对象和DefaultPolarItemRenderer对象来实现。我们可以使用...
下面将详细介绍使用JFreeChart来创建基于web的图表的步骤和方法。 首先,需要下载JFreeChart和Jcommon两个文件,从SourceForge.net网站下载最新的版本,目前最新的版本是JFreeChart 0.9.11和Jcommon 0.8.6。 在 ...
使用 JFreeChart来创建基于web的图表
在本文中,我们将深入探讨 JFreeChart 的核心类和它们在创建图表过程中的作用。 1. **JFreeChart 类**: 这是所有图表的基础,它代表了图表对象。你可以通过 JFreeChart 工厂类创建各种类型的图表,例如饼图、柱状...
接着,创建一个`ChartPanel`对象,将图表关联到它,最后可以将`ChartPanel`添加到Swing的组件中,或者将图表保存为图片文件。 4. **关键代码片段** 生成图片的关键代码段通常包括以下几个步骤: - 定义并初始化`...
JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包...
用JFreeChart创建基于Web的图表.pdf
jfreechart(包jfreechart(包含jfreechart.jar和jcommon-1.0.13.jar) jfreechart(包含jfreechart.jar和jcommon-1.0.13.jar) jfreechart(包含jfreechart.jar和jcommon-1.0.13.jar) jfreechart(包含jfreechart.jar和...
我们定义了`getDataSet()`方法来构建数据集,并在构造函数中创建了图表和`ChartPanel`。这样,我们就创建了一个简单的柱状图,显示了北京的苹果产量。 JFreeChart提供的功能远不止这些,还包括对图表的各种定制,如...
JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。...
本文将详细介绍如何使用 JFreeChart 创建股票K线图。 首先,了解 JFreeChart 的核心组件: 1. **JFreeChart**: - 这是生成图表的主要类,它封装了图表的所有属性,如背景颜色、水印、图表类型、轴等。你可以通过...
本教程将详细讲解如何使用 JFreeChart 来创建和定制图表。 首先,创建图形的基本流程涉及三个主要步骤: 1. **创建数据源 (Dataset)**:所有数据源都应该实现 `org.jfree.data.general.Dataset` 接口。根据所需...
jfreechart雷达图,jfreechart蜘蛛网图,jfreechart带刻度的雷达图
使用JFreeChart来创建基于web的图表
JFreeChart画雷达图、带刻度雷达图、蜘蛛网、带刻度蜘蛛网
- JFreeChart提供了一系列的类和方法来创建和定制图表,如`CategoryDataset`用于创建分类数据,`JFreeChart`类用于构建整个图表,`ChartFactory`类提供快速创建常见图表类型的工厂方法。 - 图表可以嵌入Java Swing...