2010-11-19 35 views
0

Salut Je travaille avec netbeans. J'ai écrit un code qui a deux classes (1) Demo (2) mainFrame which extends javax.swing.JFrametracer une ligne entre chaque deux points dans une liste respectivement

au début, mon mainFrame sera lancé et il affiche un panneau que vous pouvez mettre quelques points, puis lorsque vous cliquez sur un bouton; la dimension de tous les points sera stockée dans une liste, alors je vais envoyer cette liste à Demo class parce que je dois mettre les points dans un ordre que vous pouvez dessiner une ligne entre chaque deux points respectivement. J'ai deux problèmes ici:

  1. Je list <listOfPoints> que, comment puis-je envoyer cette liste à mainFrame classe pour tracer des lignes sans faire un nouvel objet de la classe mainFrame?

  2. Je devrais travailler avec la méthode de peinture? s'il vous plaît me aider par un exemple de code en Java (avec NetBeans)

    totalement:

    I have a lot of points' dimension in my list ,I want to traverse my list in the i.e., paint method and draw line between each pi and pi+1.how can I do this? 
    

grâce

Répondre

1

Google: NetBeans java DrawLine

première réponse

rechercher

Graphics gg = buffImg.createGraphics(); 
     gg.setColor(Color.MAGENTA); 
     gg.drawLine(10,10,buffImg.getWidth()-buffImg.getWidth()/10, 

http://wws2.uncc.edu/tpw/tpwJavaNtebeansTutorial/index.html

au sujet de votre question sur l'élaboration d'une liste de points

void drawList(Graphics gg, List points){ 
    MyPointClass prev p = null; 
    for(MyPointClass p : points){ 
     if(prevp != null){ 
      gg.drawLine(prevp.x, prevp.y, p.x, p.y); 
     } 
     prev = p; 
    } 
} 

Et si vous ne vous sentez comme passer l'objet d'une image à l'autre mâle drawList statique et vous pouvez fais MyClassContainingDrawLineMethod.drawList (gg, points);

+0

J'ai beaucoup de dimension de points dans ma liste, je veux traverser ma liste dans le i.e., méthode de peinture et dessiner la ligne entre chaque pi et pi + 1. comment est-ce que je peux faire ceci? merci – user472221

+0

vérifier edit (je relis votre article après l'avoir posté et édité pour ajouter la boucle, –

+0

merci, mais que dois-je écrire au lieu de "gg" dans ma classe de démonstration quand j'appelle cette méthode dedans? – user472221

1

Est-il important que vous utilisiez Netbeans?

En outre, pour répondre:

Je pense que Swing vous substituez la méthode généralement paintComponent (Graphics gg) pour décrire la façon dont vous voulez que votre panneau/cadre dessiné. Et appelez repaint() lorsque vous voulez que votre programme se redessine réellement.

Vous pouvez lire ce tutoriel ici: http://download.oracle.com/javase/tutorial/uiswing/ Surtout la section "Exécution de peinture personnalisée".

Jetez un coup d'œil aux parties Swing et AWT de l'API.

Vous pouvez tracer des lignes à l'aide de la méthode drawLine() de la classe graphique. Ou en utilisant la classe Line (Line2D.Double, etc) pour représenter vos lignes, puis en cours, graphicsObject.draw (ligne), etc

Ce que vous pourriez faire est d'ajouter les points à une liste, comme vous ajoutez alors sur le panneau graphique (repeindre chaque fois que vous en ajoutez un), puis lorsque vous appuyez sur le bouton, vous pouvez exécuter la méthode pour traiter votre liste dans l'actionListener du bouton. Donc quelque chose comme: list = démo.processList (liste). Où processList a un en-tête comme: public List processList (List toProcess).

+0

a convenu qu'il n'est même pas lié à l'utilisation de netbeans mais j'ai quand même posté un tutoriel en utilisant netbeans pour le rendre plus simple ^^ –