2010-11-10 5 views
0

J'ai étendu un JPanel pour l'utiliser comme toile de dessin.comment faire cela en utilisant la POO correcte?

Dans la classe gestionnaire (le gestionnaire pour la toile) Je possède ce code: -

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

    } 

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

Et dans la classe toile elle-même, j'ai quelque chose comme ça (MainFrame est une classe étend JFrame et ayant Handler comme une classe interne): -

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

Mais je l'ai lu quelque part que je déclare privé ainsi que le travail toutes les variables une class`s sur les variables doit être effectuée en utilisant des méthodes dans la même classe. Mais je ne pouvais pas faire ça ici, comment pourrais-je?

Répondre

0

Dans votre classe MainFrame, vous pourriez avoir une méthode getStartingPoint qui retourne (une copie de) startingPoint. Même chose pour la variable paintingShape: remplacez l'accès public par une méthode getPaintingShape. Essentiellement, chaque fois que vous avez un champ public, envisagez de le remplacer par des méthodes get/set et un accès privé. Cela rend votre code plus facile à maintenir dans le futur.