2013-08-30 92 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