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