翻譯|使用教程|編輯:楊鵬連|2021-03-09 11:30:32.737|閱讀 294 次
概述:在此博客文章中,我們將向您展示如何用兩個(gè)系列構(gòu)建這個(gè)美麗的面積圖。我們對(duì)Java Swing和其中的AreaChart控件使用MindFusion圖表庫。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
MindFusion.Diagramming for WinForms是一個(gè)能幫助你創(chuàng)建工作流和進(jìn)程圖表的.NET控件;數(shù)據(jù)庫實(shí)體關(guān)系圖表;組織圖表;對(duì)象層次和關(guān)系圖表;圖表和樹。它是基于對(duì)象-圖表框,表格和箭頭類型,將其歸類分派給其他并結(jié)合成復(fù)雜的結(jié)構(gòu)。該控件提供超過預(yù)先定義的50多種圖表框,如自定義設(shè)計(jì)樣式和對(duì)圖表框著色等。MindFusion.Diagramming for WinForms現(xiàn)已加入在線訂購,Standard Single Developer版本原價(jià)2848現(xiàn)在搶購立享優(yōu)惠只需2345,立即查看詳情>>
點(diǎn)擊下載MindFusion.Diagramming for WinForms最新試用版
在此博客文章中,我們將向您展示如何用兩個(gè)系列構(gòu)建這個(gè)美麗的面積圖。我們對(duì)Java Swing和其中的AreaChart控件使用MindFusion圖表庫。
I.常規(guī)設(shè)置
我們使用IntelliJ Idea作為開發(fā)圖表應(yīng)用程序的IDE。您可以使用任何其他IDE,菜單可能不同,但是步驟相同。首先,我們創(chuàng)建一個(gè)新項(xiàng)目,并在其中添加一個(gè)名為libs的文件夾。在那里,我們復(fù)制JPack.jar存檔,其中包含Pack for Java Swing集合中的所有MindFusion控件。您不必為該包使用jar存檔,只需將jar與圖表控件一起使用,即可從//mindfusion.eu/java-chart.html下載。
復(fù)制存檔后,右鍵單擊該存檔,然后從上下文菜單中選擇“添加為庫”。IDE將把jar文件添加到項(xiàng)目的構(gòu)建路徑。當(dāng)系統(tǒng)詢問您要將jar添加到何處時(shí),請(qǐng)確保指定整個(gè)項(xiàng)目:
之后,我們創(chuàng)建一個(gè)新類,我們將其稱為AreaChart并將其擴(kuò)展為JFrame。這將是我們應(yīng)用程序的主要且唯一的類。在其主要方法中,我們添加了用于創(chuàng)建和啟動(dòng)窗口的默認(rèn)Java代碼。然后,我們創(chuàng)建AreaChart類的新實(shí)例:
public class AreaChart extends JFrame
{
public static void main(String[] args) {
JFrame f = new JFrame();
f.setTitle("MindFusion.Charting sample: Area Chart");
f.setSize(800, 600);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
com.mindfusion.charting.swing.AreaChart chart =
new com.mindfusion.charting.swing.AreaChart();
f.getContentPane().setLayout(new BorderLayout());
f.getContentPane().add(chart, BorderLayout.CENTER);
f.setVisible(true);
}
二.圖表數(shù)據(jù)和系列
圖表的數(shù)據(jù)由Series2D類的兩個(gè)實(shí)例指定。此類在構(gòu)造函數(shù)中采用三個(gè)列表作為參數(shù):帶有數(shù)據(jù)的數(shù)組(用于數(shù)據(jù)點(diǎn)的X坐標(biāo)),帶有數(shù)據(jù)的數(shù)組(用于數(shù)據(jù)點(diǎn)的Y坐標(biāo))和帶有標(biāo)簽的列表。帶有標(biāo)簽的列表可以為空。
// create sample data series Series2D series1 = new Series2D( Arrays.asList(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0), Arrays.asList(25.0, 35.0, 24.0, 26.0, 27.0, 19.0, 29.0, 19.0, 27.0, 23.0, 17.0, 15.0), labels);標(biāo)簽列表是通過以下方式定義的:
List labels = Arrays.asList( "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec" );我們不希望標(biāo)簽出現(xiàn)在數(shù)據(jù)點(diǎn),這是呈現(xiàn)這些標(biāo)簽的默認(rèn)方式。幸運(yùn)的是,Series2D類公開了一個(gè)名為setSupportedLabels的方法,該方法使我們可以指定應(yīng)在何處應(yīng)用這些標(biāo)簽。此方法的參數(shù)是LabelKinds枚舉的一個(gè)實(shí)例,該實(shí)例公開了可以在圖表上找到的所有類型的標(biāo)簽的成員。成員允許按位組合。
在我們的例子中,我們想在X軸上渲染標(biāo)簽。因此,我們以以下簡(jiǎn)單方式設(shè)置它們:
series1.setSupportedLabels(LabelKinds.XAxisLabel);
我們還必須使用setTitle方法為我們的系列指定標(biāo)題。標(biāo)題將顯示為圖例中系列的項(xiàng)目。我們將在圖表上顯示圖例,因此我們需要指定與該系列相對(duì)應(yīng)的標(biāo)簽。
最后,我們必須將此Series2D添加到圖表的Series集合中。我們使用getSeries獲取集合并添加新創(chuàng)建的系列:
chart.getSeries().add(series1);
第二個(gè)系列與第一個(gè)系列的區(qū)別僅在于Y數(shù)據(jù)。它還沒有標(biāo)簽。我們?cè)赬軸上不需要兩個(gè)標(biāo)簽列表-一個(gè)就足夠了。
完成數(shù)據(jù)設(shè)置后,我們可以運(yùn)行應(yīng)用程序來查看圖表:
該圖表是正確的,但看起來并不十分吸引人。我們需要對(duì)其進(jìn)行樣式設(shè)置。
三.圖表樣式我們使用Axis類的方法微調(diào)圖表軸的外觀。使用getXAxis和getYAxis方法訪問負(fù)責(zé)兩個(gè)軸的Axis對(duì)象。我們使用setMaxValue和setInterval方法來調(diào)整兩個(gè)軸的間隔。這也影響最大值。我們還使用setTitle隱藏軸標(biāo)題-我們指定一個(gè)空字符串。
chart.getYAxis().setInterval(5.0); chart.getYAxis().setMaxValue(50.0); chart.getXAxis().setMaxValue(12.0); chart.getXAxis().setInterval(1.0); chart.getXAxis().setTitle(""); chart.getYAxis().setTitle("");
然后我們自定義網(wǎng)格。我們想要帶有虛線的水平網(wǎng)格。我們使用GridType枚舉的“ Horizontal”成員。它作為圖表的setGridType方法的參數(shù)提供。我們指定用虛線setGridLineStyle和使用setGridLineColor為網(wǎng)格線指定顏色。
chart.setGridType(GridType.Horizontal);
chart.getTheme().setGridLineColor(new Color(190, 190, 190));
chart.getTheme().setGridLineStyle(DashStyle.Dash);
我們還需要調(diào)整圖表標(biāo)簽的字體大?。?/span>
chart.setShowXCoordinates(false); chart.getTheme().setAxisLabelsFontSize(14); chart.getTheme().setDataLabelsFontSize(14);圖表具有許多屬性,可用于自定義其上使用的所有字體類型。他們是主題類的成員。每個(gè)圖表類型都有一個(gè)主題對(duì)象,可以通過getTheme訪問
最后,我們需要考慮區(qū)域圖形的顏色。我們將使用Theme的setCommonSeriesFills方法為每個(gè)Series指定顏色。commonSeriesFills和strokes屬性使用畫筆指定列表,這些畫筆為每個(gè)系列的內(nèi)部和輪廓著色。
chart.getTheme().setCommonSeriesFills( Arrays.asList( new SolidBrush( new Color (102, 154, 204, 190)), new SolidBrush(new Color (156, 170, 198, 190)))); chart.getTheme().setCommonSeriesStrokes( Arrays.asList( new SolidBrush( new Color (28, 58, 88)))); chart.getTheme().setCommonSeriesStrokeThicknesses( Arrays.asList(5.0));
這些是我們AreaChart上的最后一個(gè)自定義項(xiàng)。最終圖表已準(zhǔn)備就緒。
要獲得技術(shù)支持,請(qǐng)使用//mindfusion.eu/Forum/YaBB.pl?board=jchart_dic上Java Swing圖表庫的討論板。關(guān)于用于Java Swing的MindFusion圖表和量具庫:這是一個(gè)本機(jī)Java Swing庫,適用于繪制多種圖表和量具類型。靈活的API允許組合各種圖表部分:軸,圖和系列,以創(chuàng)建適合任何業(yè)務(wù)應(yīng)用程序特定需求的獨(dú)特圖表:具有多個(gè)圖的圖表,四面八方的軸,在一個(gè)圖中的不同圖表圖形等等。所有圖表系列都來自基本的“系列”接口,程序員可以將其實(shí)現(xiàn)以創(chuàng)建自己的系列類。外觀由主題控制,圖表外觀可自定義。量具庫是圖表控件的一部分,并提供一組橢圓形和線性量具,可用于創(chuàng)建任何類型的量具,圓形或矩形量具(最多三個(gè))。該庫隨附了一組預(yù)定義的流行儀表:指南針,時(shí)鐘,溫度計(jì)等。要了解有關(guān)Java Swing的MindFusion圖表和儀表的更多詳細(xì)信息,請(qǐng)?jiān)L問://mindfusion.eu/java-chart.html。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: