0 0

将JFreeChart创建的ChartPanel和普通Panel在JLayeredPane上布局5

这个是一个用JFreeChart创建的曲线图和一个JTable表格,然后要求表格的第一行要和曲线图紧挨着,然后我用JLayeredPane控制布局,但是没有显示,注释掉的部分是我用JLayeredPane添加2个组件然后进行布局,还有表格第一列的字体怎么用font对象设置在java代码里设置为黄色,红色,蓝色字体
2009年8月24日 14:45

1个答案 按时间排序 按投票排序

0 0

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简单入门.doc

    但总体来说,JFreeChart 提供了直观且灵活的接口,让开发者能够轻松创建和定制各种图表。 总的来说,JFreeChart 是一个强大的 Java 图表库,适用于各种数据分析和可视化需求。通过简单的例子,我们可以快速掌握其...

    使用JFreeChart创建图表.ppt

    使用JFreeChart创建图表.ppt

    jfreechart绘制的风速风向玫瑰图

    最后,我们可以使用ChartPanel将图表显示在JPanel中。 在绘制风速风向玫瑰图时,我们需要设置雷达图像网格数量和折现图像颜色。这些设置可以通过PolarPlot对象和DefaultPolarItemRenderer对象来实现。我们可以使用...

    使用JFreeChart来创建基于web的图表.docx

    下面将详细介绍使用JFreeChart来创建基于web的图表的步骤和方法。 首先,需要下载JFreeChart和Jcommon两个文件,从SourceForge.net网站下载最新的版本,目前最新的版本是JFreeChart 0.9.11和Jcommon 0.8.6。 在 ...

    使用 JFreeChart来创建基于web的图表

    使用 JFreeChart来创建基于web的图表

    jfreechart的一个小总结

    在本文中,我们将深入探讨 JFreeChart 的核心类和它们在创建图表过程中的作用。 1. **JFreeChart 类**: 这是所有图表的基础,它代表了图表对象。你可以通过 JFreeChart 工厂类创建各种类型的图表,例如饼图、柱状...

    Java程序中用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包和API文档JFreeChart的JAR包...

    用JFreeChart创建基于Web的图表

    用JFreeChart创建基于Web的图表.pdf

    jfreechart(包含jfreechart.jar和jcommon-1.0.13.jar)

    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和...

    jfreechart中文实例教程

    我们定义了`getDataSet()`方法来构建数据集,并在构造函数中创建了图表和`ChartPanel`。这样,我们就创建了一个简单的柱状图,显示了北京的苹果产量。 JFreeChart提供的功能远不止这些,还包括对图表的各种定制,如...

    使用 JFreeChart来创建基于web的图表 WORD版

    JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。...

    JFreeChart 股票K线图创建过程

    本文将详细介绍如何使用 JFreeChart 创建股票K线图。 首先,了解 JFreeChart 的核心组件: 1. **JFreeChart**: - 这是生成图表的主要类,它封装了图表的所有属性,如背景颜色、水印、图表类型、轴等。你可以通过...

    JFreeChart 教程

    本教程将详细讲解如何使用 JFreeChart 来创建和定制图表。 首先,创建图形的基本流程涉及三个主要步骤: 1. **创建数据源 (Dataset)**:所有数据源都应该实现 `org.jfree.data.general.Dataset` 接口。根据所需...

    jfreechart雷达图

    jfreechart雷达图,jfreechart蜘蛛网图,jfreechart带刻度的雷达图

    使用JFreeChart来创建基于web的图表

    使用JFreeChart来创建基于web的图表

    JFreeChart画雷达图

    JFreeChart画雷达图、带刻度雷达图、蜘蛛网、带刻度蜘蛛网

    JFreeChart教程

    - JFreeChart提供了一系列的类和方法来创建和定制图表,如`CategoryDataset`用于创建分类数据,`JFreeChart`类用于构建整个图表,`ChartFactory`类提供快速创建常见图表类型的工厂方法。 - 图表可以嵌入Java Swing...

Global site tag (gtag.js) - Google Analytics