【50分求助】swing图形设计

wipe_tear 2009-01-05 12:01:19
根据数据库里面的信息动态生成柱状比较图(图片的形式),两种颜色一种是预算,一种是实际,然后可能分成各个部门的,比如A,B,C,
也就是说有3*2个柱子,两个一组,总共三组,然后我们希望点击某组比如A这个部门这个组,就进入A部门下面的小部门,循环出现上面这个图片中,
也就是一个图表的穿透式查询

生成柱子没有问题,用jfreechar就可以了
关键在于穿透式查询

[color=#99CC00]另外最重要的一点就是,柱状比较图不是在jsp页面中出现的,而是在swing的图形组件中出现了 [/color]

求助!!!!!!!!!!
...全文
168 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wipe_tear 2009-01-10
  • 打赏
  • 举报
回复
up
wipe_tear 2009-01-09
  • 打赏
  • 举报
回复
穿透查询的意思就是,比如生成了两个柱形比较图,每个柱形比较图又分为预算和实际两个部分,
一个是管理费用的预算与实际比,另外一个是经营费用的预算与实际比较图,
然后点击其中的一组,比如管理费用的,然后就生成一张新的图片,这张图片是管理费用下面的小费用的预算与实际的比较图,
比如水费的预算与实际的比较作为一组,然后电费的预算与实际的比较做为一组,等等等吧
Dream_JavaWorld 2009-01-08
  • 打赏
  • 举报
回复
mark
wipe_tear 2009-01-08
  • 打赏
  • 举报
回复
up
claudxyz 2009-01-07
  • 打赏
  • 举报
回复
学习
wipe_tear 2009-01-07
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 jiangnaisong 的回复:]
引用 8 楼 wipe_tear 的回复:
6楼的哥们,你那个不好使,就是在swing上生成一个柱形图,我这里已经实现了

我现在要的是最关键的就是


穿透查询,从这个图形穿透到下一个图形

答:是在SWING中做吗?若是在SWING中,你就弄个JLabel,你点哪一组(如A组),就在上面显示哪一组(如A组)的那个图片.是这个意思吧?
[/Quote]

应该不是你说的这个意思,你在看看题目吧
wipe_tear 2009-01-06
  • 打赏
  • 举报
回复
csdn堕落了?
wipe_tear 2009-01-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 gongfuliang 的回复:]
就是所谓的钻取呗,使用CardLayout,保存可能存在的ChartPanel,点击锚点的时候,layout.show(... , ...);

或者先生成 ChartPanel, 将之前的 remove,再 add, 最后调用上层组件的 revalidate
[/Quote]


不会吧,有这么费劲吗,呵呵
云上飞翔 2009-01-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wipe_tear 的回复:]
6楼的哥们,你那个不好使,就是在swing上生成一个柱形图,我这里已经实现了

我现在要的是最关键的就是


穿透查询,从这个图形穿透到下一个图形
[/Quote]
答:是在SWING中做吗?若是在SWING中,你就弄个JLabel,你点哪一组(如A组),就在上面显示哪一组(如A组)的那个图片.是这个意思吧?
goodmrning 2009-01-06
  • 打赏
  • 举报
回复
ding!
lihan6415151528 2009-01-05
  • 打赏
  • 举报
回复
只能关注下了
wipe_tear 2009-01-05
  • 打赏
  • 举报
回复
大过年的,快点的
fuyueyue 2009-01-05
  • 打赏
  • 举报
回复
学习,帮顶
wipe_tear 2009-01-05
  • 打赏
  • 举报
回复
另外最重要的一点就是,柱状比较图不是在jsp页面中出现的,而是在swing的图形组件中出现了

非常感谢
gongfuliang 2009-01-05
  • 打赏
  • 举报
回复
就是所谓的钻取呗,使用CardLayout,保存可能存在的ChartPanel,点击锚点的时候,layout.show(... , ...);

或者先生成 ChartPanel, 将之前的 remove,再 add, 最后调用上层组件的 revalidate
wipe_tear 2009-01-05
  • 打赏
  • 举报
回复
6楼的哥们,你那个不好使,就是在swing上生成一个柱形图,我这里已经实现了

我现在要的是最关键的就是


穿透查询,从这个图形穿透到下一个图形
wipe_tear 2009-01-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 baobao28 的回复:]
你可以输出到ChartPanel里,而且还可以实时更新图片,不知道你要的是不是这个效果。
随便给你发了个柱图的demo

Java code

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

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.Category…
[/Quote]


哥们我马上就是try一下啊,谢谢了,看着挺像的,哈哈
baobao28 2009-01-05
  • 打赏
  • 举报
回复
你可以输出到ChartPanel里,而且还可以实时更新图片,不知道你要的是不是这个效果。
随便给你发了个柱图的demo


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

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class BarChartDemo extends ApplicationFrame {

public BarChartDemo(final String title) {
super(title);

final CategoryDataset dataset = createDataset();
final JFreeChart chart = createChart(dataset);
final ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(500, 270));
setContentPane(chartPanel);
}

private CategoryDataset createDataset() {

final String series1 = "First";
final String series2 = "Second";
final String series3 = "Third";

final String category1 = "Category 1";
final String category2 = "Category 2";
final String category3 = "Category 3";
final String category4 = "Category 4";
final String category5 = "Category 5";

final DefaultCategoryDataset dataset = new DefaultCategoryDataset();

dataset.addValue(1.0, series1, category1);
dataset.addValue(4.0, series1, category2);
dataset.addValue(3.0, series1, category3);
dataset.addValue(5.0, series1, category4);
dataset.addValue(5.0, series1, category5);

dataset.addValue(5.0, series2, category1);
dataset.addValue(7.0, series2, category2);
dataset.addValue(6.0, series2, category3);
dataset.addValue(8.0, series2, category4);
dataset.addValue(4.0, series2, category5);

dataset.addValue(4.0, series3, category1);
dataset.addValue(3.0, series3, category2);
dataset.addValue(2.0, series3, category3);
dataset.addValue(3.0, series3, category4);
dataset.addValue(6.0, series3, category5);

return dataset;

}

private JFreeChart createChart(final CategoryDataset dataset) {
final JFreeChart chart = ChartFactory.createBarChart(
"Bar Chart Demo", // chart title
"Category", // domain axis label
"Value", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips?
false // URLs?
);

chart.setBackgroundPaint(Color.white);

final CategoryPlot plot = chart.getCategoryPlot();
plot.setBackgroundPaint(Color.lightGray);
plot.setDomainGridlinePaint(Color.white);
plot.setRangeGridlinePaint(Color.white);

final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

final BarRenderer renderer = (BarRenderer) plot.getRenderer();
renderer.setDrawBarOutline(false);

final GradientPaint gp0 = new GradientPaint(
0.0f, 0.0f, Color.blue,
0.0f, 0.0f, Color.lightGray
);
final GradientPaint gp1 = new GradientPaint(
0.0f, 0.0f, Color.green,
0.0f, 0.0f, Color.lightGray
);
final GradientPaint gp2 = new GradientPaint(
0.0f, 0.0f, Color.red,
0.0f, 0.0f, Color.lightGray
);
renderer.setSeriesPaint(0, gp0);
renderer.setSeriesPaint(1, gp1);
renderer.setSeriesPaint(2, gp2);

final CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(
CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0)
);

return chart;
}

public static void main(final String[] args) {

final BarChartDemo demo = new BarChartDemo("Bar Chart Demo");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);

}
}

SylvanLiu 2009-01-05
  • 打赏
  • 举报
回复
不熟,关注

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧