概述JSci.swing包的核心
在本文中,我將介紹 JSci.swing包并向您展示如何使用它的類和方法創(chuàng)建條形圖、餅形圖和折線圖。我們將首先看一下組成包的核心的類。
Java 2D 可能是在 Java 程序中編寫 2D 圖形程序的最顯著的解決方案,但它不是唯一的一個(gè)。在本文中,Java 開發(fā)者 John Carr 提出了一種優(yōu)秀的備用方案 — “Java 科學(xué)對象”(Java Objects for Science(JSci)),一個(gè)開放源代碼的包,它使您能夠在 Swing 中創(chuàng)建 2D 條形圖、餅形圖和折線圖。請?jiān)贘avascript:void%20forumWindow()">討論論壇與本文作者和其他讀者分享您對本文的心得。
對于大多數(shù) Java 開發(fā)者,任何類型的圖形開發(fā)在本質(zhì)上都與 Java 2D 和 3D API 以及 Java.awt.Graphics 有緊密聯(lián)系。雖然 Java 2D 和 3D API 為在 Swing 中創(chuàng)建圖形提供優(yōu)秀的工具,但您并非只可以任意使用它們,當(dāng)然它們也不是最容易學(xué)的。對于那些沒有時(shí)間、需要或有興趣熬夜深刻了解 Java.awt.Graphics 的人,我向您推薦一個(gè)開放源代碼的備用方案:JSci。
Java 科學(xué)對象(JSci)開放源代碼項(xiàng)目是 Durham(英國 Durham)大學(xué)粒子理論中心的三年級(jí)研究生 Mark Hale 創(chuàng)立的。JSci 是一個(gè)包集合,包含數(shù)學(xué)和科學(xué)類。 在撰寫本文時(shí),JSci 的版本是 .87,運(yùn)行在 Java 1.1.8、1.2.x 或 1.3.x 上,但將來可能為 Java 1.4 寫更新版本的 JSci。這個(gè)項(xiàng)目的目的是以可能有助于基于科學(xué)的軟件開發(fā)的最自然方式封裝科學(xué)方法和原則。支持 JSci 的設(shè)計(jì)哲學(xué)是基于這樣一種思想 — “直接從黑板到代碼”。也就是,數(shù)學(xué)概念和構(gòu)造應(yīng)該以某種方式封裝在代碼中。在某種程度上,JSci 作為對象設(shè)計(jì)實(shí)驗(yàn)與作為數(shù)學(xué)庫差不多。
使用 JSci,您既可以在 AWT 中也可以在 Swing 中創(chuàng)建簡單的條形圖、折線圖和餅形圖。JSci.swing.JBarGraph、 JSci.swing.JPieChart 和 JSci.swing.JLineGraph API 組件設(shè)計(jì)得也很好,這些組件和 AWT 繪圖類都遵守 MVC 體系結(jié)構(gòu)。
JSci.swing包
用于在 Swing 中創(chuàng)建圖形的類位于 JSci.swing包中。JSci.swing包中的類,除 JImageCanvas 之外,都從 JDoubleBufferedComponent 繼承。注意:JDoubleBufferedComponent 和 JImageCanvas 都是從 Javax.swing.JComponent 繼承的。
【編輯推薦】