该示例演示如何使用 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应用程序中生成的条形图 |
| 共13页: 上一页 [1] [2] [3] [4] 5 [6] [7] [8] [9] [10] [11] [12] [13] 下一页 | |||||||||||||||
|
|
||||
| · NAC安全访问控制 · 网络布线测试仪器 · Windows Server 2008专.. · Windows远程桌面应用 · 网络故障排除宝典 · 运营商封堵ADSL共享 中.. · 解析35岁技术人的价值.. · 世纪枭雄比尔盖茨的王.. |
· 主流品牌防火墙配置 · ASP.NET开发教程 · 超级计算机TOP500专题 · Vista SP1对决XP SP3 · SQL Server 2008/2005.. · 程序员如何成长? · C#技术开发指南 · 虚拟化技术还有点“虚” |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Windows远程桌面应用 · C#技术开发指南 · Apache技术专题 |
· Windows集群服务应用 · C#技术开发指南 · 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 |
|||