2010-11-10 35 views
0

我擴展了一個JPanel,將它用作繪畫的畫布。如何使用正確的OOP執行此操作?

在Handler類(的處理程序中的畫布)我有這樣的代碼: -

public void mouseDragged(MouseEvent e) 
    { 
     endingPoint = e.getPoint(); 
     repaint(); 

    } 

    public void mousePressed(MouseEvent e) 
    { 
     startingPoint = e.getPoint(); 
    } 

而且在畫布類本身我有這樣的事情(大型機一類擴展JFrame的,並具有處理程序一個內部類): -

if (MainFrame.paintingShape.equalsIgnoreCase("line")) 
    { 
     g.drawLine(MainFrame.startingPoint.x, MainFrame.startingPoint.y, ..., ...); 
    } 

但我讀的地方,我應該申報全部class`s私有變量和變量的所有工作應使用同一類中的方法來完成。 但我不能這樣做,我怎麼能?

回答

0

在您的MainFrame類中,您可以使用返回(副本)startingPoint的方法getStartingPointpaintingShape變量同樣適用:用getPaintingShape方法替換公共訪問。

基本上,只要你有公共領域,考慮用get/set方法和私人訪問來替換它。它使您的代碼在未來更易於維護。