Chinaunix首页 | 论坛 | 博客
  • 博客访问: 100889750
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-23 17:34:46

作者: Dustin Marx/Michael G. Martin 出处:  
 

示例 3:在 Swing 中生成条形图

该示例演示如何使用 JFreeChart 生成条形图,还将介绍在 Swing 中显示 JFreeChart 生成的图表的想法。清单 4 显示了用于生成该图表以及在 Swing 中显示生成的图表的最重要的代码。

清单 4: 从 Java Swing 生成条形图

   /**
* Create Bar Chart showing salary of each employee.
    * 
* @param aOrientation Horizontal or Vertical orientation of bar chart.
* @return Bar Chart.
    */
public JFreeChart createSalaryPerFinanceEmployeeBarChart(
PlotOrientation aOrientation)
   {
JFreeChart barChart = null;

try
      {
final String QUERY_SALARY_PER_FINANCE_EMPLOYEE =
"SELECT first_name || ' ' || last_name AS Name, salary " +
"FROM employees " +
"WHERE department_id = 100";

final CategoryDataset barDataset =
new JDBCCategoryDataset( databaseAccess.getOracleDbConnection(),
QUERY_SALARY_PER_FINANCE_EMPLOYEE );

barChart =
ChartFactory.createBarChart( TITLE_SALARY_PER_FINANCE_EMP, // title
LABEL_EMPLOYEES_FINANCE, // x-axis label
LABEL_SALARIES,          // y-axis label
barDataset,
aOrientation,
true,      // legend displayed
true,      // tooltips displayed
false );   // no URLs

      }
catch (SQLException sqlEx)
      {
// . . . exception handling goes here . . .
      }    

return barChart;
   }
. . .

JFrame frame = new JFrame(aTitle);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JFreeChart barChart =
createSalaryPerFinanceEmployeeBarChart(
PlotOrientation.VERTICAL);
         
BufferedImage image = barChart.createBufferedImage(750,450);
JLabel label = new JLabel();
label.setIcon(new ImageIcon(image));
frame.getContentPane().add(label);

frame.pack();
frame.setVisible(true);

该代码示例使用 String 常量取代硬编码的字符串,这些常量可以根据它们字母全部大写、单词之间用下划线分隔的命名规则得以轻松识别。

前两个饼形图生成示例使用了一个 PieDataset。这个条形图生成示例改用了一个 CategoryDataset。与饼形图不同,方向也是条形图的一个问题,可以指定垂直或水平两个方向。该示例指定了一个垂直绘制方向。

在代码清单的底部,示例代码演示了如何将图表作为一个可以作为图标轻松应用到 JLabel 的 BufferedImage 进行检索。图 7 显示了这个包含 JFreeChart 生成的条形图的简单的 Swing 图形用户界面 (GUI) 的快照图片。

图7:在Swing应用程序中生成的条形图
阅读(390) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~