欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java类图怎么画程序(将UML类图转化为Java代码)

程序员文章站 2023-11-25 21:23:04
[mindfusion.diagramming for winforms]是一个能帮助你创建工作流和进程图表的.net控件;数据库实体关系图表;组织图表;对象层次和关系图表;图表和树。它是基于对象-图...

[mindfusion.diagramming for winforms]是一个能帮助你创建工作流和进程图表的.net控件;数据库实体关系图表;组织图表;对象层次和关系图表;图表和树。它是基于对象-图表框,表格和箭头类型,将其归类分派给其他并结合成复杂的结构。该控件提供超过预先定义的50多种图表框,如自定义设计样式和对图表框着色等。

在此博客文章中,我们将向您展示如何用两个系列构建这个美丽的面积图。我们对java swing和其中的areachart控件使用mindfusion图表库。

java类图怎么画程序(将UML类图转化为Java代码)

**

i.常规设置

**我们使用intellij idea作为开发图表应用程序的ide。您可以使用任何其他ide,菜单可能不同,但是步骤相同。

首先,我们创建一个新项目,并在其中添加一个名为libs的文件夹。在那里,我们复制jpack.jar存档,其中包含pack for java swing集合中的所有mindfusion控件。您不必为该包使用jar存档,只需将jar与图表控件一起使用,即可从 https://mindfusion.eu/java-ch… 。

复制存档后,右键单击该存档,然后从上下文菜单中选择“添加为库”。ide将把jar文件添加到项目的构建路径。当系统询问您要将jar添加到何处时,请确保指定整个项目:

java类图怎么画程序(将UML类图转化为Java代码)

之后,我们创建一个新类,我们将其称为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轴上不需要两个标签列表-一个就足够了。

完成数据设置后,我们可以运行应用程序来查看图表:

java类图怎么画程序(将UML类图转化为Java代码)

该图表是正确的,但看起来并不十分吸引人。我们需要对其进行样式设置。

三.图表样式

我们使用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允许组合各种图表部分:轴,图和系列,以创建适合任何业务应用程序特定需求的独特图表:具有多个图的图表,四面八方的轴,在一个图中的不同图表图形等等。所有图表系列都来自基本的“系列”接口,程序员可以将其实现以创建自己的系列类。外观由主题控制,图表外观可自定义。量具库是图表控件的一部分,并提供一组椭圆形和线性量具,可用于创建任何类型的量具,圆形或矩形量具(最多三个)。该库随附了一组预定义的流行仪表:指南针,时钟,温度计等。