2010-11-10 77 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方法和私人访问来替换它。它使您的代码在未来更易于维护。

相关问题