將UML類圖轉化為Java代碼:java類圖怎麼畫程序

[MindFusion.Diagramming for WinForms]是一個能幫助你創建工作流和進程圖表的.NET控件;數據庫實體關係圖表;組織圖表;對象層次和關係圖表;圖表和樹。它是基於對象-圖表框,表格和箭頭類型,將其歸類分派給其他並結合成複雜的結構。該控件提供超過預先定義的50多種圖表框,如自定義設計樣式和對圖表框着色等。

在此博客文章中,我們將向您展示如何用兩個系列構建這個美麗的面積圖。我們對Java Swing和其中的AreaChart控件使用MindFusion圖表庫。

MindFusion構建Java Swing中的區域圖教程

**

I.常規設置

**我們使用IntelliJ Idea作為開發圖表應用程序的IDE。您可以使用任何其他IDE,菜單可能不同,但是步驟相同。

首先,我們創建一個新項目,並在其中添加一個名為libs的文件夾。在那裡,我們複製JPack.jar存檔,其中包含Pack for Java Swing集合中的所有MindFusion控件。您不必為該包使用jar存檔,只需將jar與圖表控件一起使用,即可從 https://mindfusion.eu/java-ch… 。

複製存檔後,右鍵單擊該存檔,然後從上下文菜單中選擇“添加為庫”。IDE將把jar文件添加到項目的構建路徑。當系統詢問您要將jar添加到何處時,請確保指定整個項目:

MindFusion構建Java Swing中的區域圖教程

之後,我們創建一個新類,我們將其稱為AreaChart並將其擴展為JFrame。這將是我們應用程序的主要且唯一的類。在其主要方法中,我們添加了用於創建和啟動窗口的默認Java代碼。然後,我們創建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);

}

二.圖表數據和系列

圖表的數據由Series2D類的兩個實例指定。此類在構造函數中採用三個列表作為參數:帶有數據的數組(用於數據點的X坐標),帶有數據的數組(用於數據點的Y坐標)和帶有標籤的列表。帶有標籤的列表可以為空。

// 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);

標籤列表是通過以下方式定義的:

List labels = Arrays.asList(

"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sept", "Oct", "Nov", "Dec"

);

我們不希望標籤出現在數據點,這是呈現這些標籤的默認方式。幸運的是,Series2D類公開了一個名為setSupportedLabels的方法,該方法使我們可以指定應在何處應用這些標籤。此方法的參數是LabelKinds枚舉的一個實例,該實例公開了可以在圖表上找到的所有類型的標籤的成員。成員允許按位組合。

在我們的例子中,我們想在X軸上渲染標籤。因此,我們以以下簡單方式設置它們:

series1.setSupportedLabels(LabelKinds.XAxisLabel);

我們還必須使用setTitle方法為我們的系列指定標題。標題將顯示為圖例中系列的項目。我們將在圖表上顯示圖例,因此我們需要指定與該系列相對應的標籤。

最後,我們必須將此Series2D添加到圖表的Series集合中。我們使用getSeries獲取集合併添加新創建的系列:

chart.getSeries().add(series1);

第二個系列與第一個系列的區別僅在於Y數據。它還沒有標籤。我們在X軸上不需要兩個標籤列表-一個就足夠了。

完成數據設置後,我們可以運行應用程序來查看圖表:

MindFusion構建Java Swing中的區域圖教程

該圖表是正確的,但看起來並不十分吸引人。我們需要對其進行樣式設置。

三.圖表樣式

我們使用Axis類的方法微調圖表軸的外觀。使用getXAxis和getYAxis方法訪問負責兩個軸的Axis對象。我們使用setMaxValue和setInterval方法來調整兩個軸的間隔。這也影響最大值。我們還使用setTitle隱藏軸標題-我們指定一個空字符串。

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(“”);

然後我們自定義網格。我們想要帶有虛線的水平網格。我們使用GridType枚舉的“ Horizontal”成員。它作為圖表的setGridType方法的參數提供。我們指定用虛線setGridLineStyle和使用setGridLineColor為網格線指定顏色。

chart.setGridType(GridType.Horizontal);

chart.getTheme().setGridLineColor(new Color(190, 190, 190));

chart.getTheme().setGridLineStyle(DashStyle.Dash);

我們還需要調整圖表標籤的字體大小:

chart.setShowXCoordinates(false);

chart.getTheme().setAxisLabelsFontSize(14);

chart.getTheme().setDataLabelsFontSize(14);

圖表具有許多屬性,可用於自定義其上使用的所有字體類型。他們是主題類的成員。每個圖表類型都有一個主題對象,可以通過getTheme訪問

最後,我們需要考慮區域圖形的顏色。我們將使用Theme的setCommonSeriesFills方法為每個Series指定顏色。commonSeriesFills和strokes屬性使用畫筆指定列表,這些畫筆為每個系列的內部和輪廓着色。

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上的最後一個自定義項。最終圖表已準備就緒。

要獲得技術支持,請使用 https://mindfusion.eu/Forum/Y… Swing圖表庫的討論版。

關於用於Java Swing的MindFusion圖表和量具庫:這是一個本機Java Swing庫,適用於繪製多種圖表和量具類型。靈活的API允許組合各種圖表部分:軸,圖和系列,以創建適合任何業務應用程序特定需求的獨特圖表:具有多個圖的圖表,四面八方的軸,在一個圖中的不同圖表圖形等等。所有圖表系列都來自基本的“系列”接口,程序員可以將其實現以創建自己的系列類。外觀由主題控制,圖表外觀可自定義。量具庫是圖表控件的一部分,並提供一組橢圓形和線性量具,可用於創建任何類型的量具,圓形或矩形量具(最多三個)。該庫隨附了一組預定義的流行儀錶:指南針,時鐘,溫度計等。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/216238.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-08 21:55
下一篇 2024-12-08 21:55

相關推薦

發表回復

登錄後才能評論