2013-08-30 180 views
0

我们正在制定一个UML工具作为我们本科项目的一部分。我们处理在屏幕上绘制的属性的方式如下:关于在Java中将矩形添加到矩形的建议

  1. 每个东西都绘制在一个JPanel上,该JPanel上绘制了一个网格。
  2. 此JPanel的引用传递给要绘制的项目,如类或界面无论如何..
  3. 然后,我们只需绘制形状(通过drawRect),并添加属性时,我们只需添加JLabels通过使用在点2中传递的引用来在JPanel上表示它们。但是对于用户来说,它们似乎是在形状上绘制的。
    我的问题是,我们的方法是对的吗?还是有更好的方法来完成这项任务?我附上说明我们有什么的图表?或者使用JLabel完成这项任务是一个糟糕的主意? JPanel的引用只传递给JLabels。否则不需要。 class2 and attributes all are JLabels. User can change their visibility and name by right click and left click respectively
+0

这是一个相当主观的问题,因为有多种方法可以做到这一点,并且可能没有确定哪种方法最好的客观方法。 –

+0

我的感觉是,一旦你开始在JPanel上绘图,你就继续在JPanel上绘图。换句话说,使用drawText方法而不是JLabel。正如rcook在他的回答中所说的那样,你想要一起保存一个对象的所有绘图代码。 –

回答

1

看样子你是说拿着属性中的JLabel被放置在有电网的大的JPanel。

我同意这位评论员的说法,这是主观的,但我有一个替代方案来提供给你,我认为这样更好,它应该得到答案。您的整体图形上有一个矩形空间,表示一个项目 - 在这种情况下为对象。我认为现在或将来你都可能想要对这个项目做些事情,如果你分开绘制这个项目的组成部分,你将会承诺自己跟上它的所有子项目你自己的代码。

我建议使用JPanel来表示对象,并在对象的JPanel中放置任何要显示在该矩形内的属性或其他内容,而不是网格的JPanel。

+0

可能是我们将在我们的上下文中使用JComponent作为我们绘图元素的父类来解决上述问题。同意你的解释和想法。 – Wasim