Avatar billede pblv Nybegynder
12. september 2003 - 10:35 Der er 1 kommentar og
1 løsning

Streg-tegner

Halløjsa,

Jeg har følgende mouse-listener:

  private class MouseMotionListener
      extends MouseMotionAdapter
  {
    public void mouseMoved(MouseEvent e)
    {

      if (antalPositioner > 0 && e.getX() > 98 && e.getY() > 37 &&
          e.getX() < 898 && e.getY() < 408)
      {
        billedePanel1.repaint();
            float[] flo = new float[]{10.0f,5.0f};
            Graphics2D g = (Graphics2D) billedePanel1.getGraphics();
            g.setStroke(new BasicStroke(2f, BasicStroke.CAP_SQUARE,
                                        BasicStroke.JOIN_BEVEL, 10.0f, flo, 0f));
            g.setColor(Color.ORANGE);

        if (s1.getX() < 445)
        {
          infoLabel.setText("Længde: " +
                            String.valueOf( (e.getX() - 98) * 106 / 800) +
                            "m, Bredde: " +
                            String.valueOf( (e.getY() - 37) * 69 / 371) + "m");
          g.drawLine(e.getX(),40,e.getX(),e.getY());
          g.drawLine(102,e.getY(),e.getX(),e.getY());
        }
        else
        {
          infoLabel.setText("Længde: " +
                            String.valueOf(105 - (e.getX() - 98) * 106 / 800) +
                            "m, Bredde: " +
                            String.valueOf(68 - (e.getY() - 37) * 69 / 371) +
                            "m");
          g.drawLine(e.getX(),e.getY(),e.getX(),410);
          g.drawLine(e.getX(),e.getY(),893,e.getY());
        }
      }
      else
        infoLabel.setText("");

    }

  }

Meningen er at den skal tegne to streger ud til musen, for man kan se hvor henne man er. Det virker også fint, det eneste problem er, at hvis jeg "stopper" musen, forsvinder stregen. Sålænge musen bliver holdt igang, så viser den fint de 2 streger.
Avatar billede logical Nybegynder
15. september 2003 - 13:44 #1
Det er formodentlig fordi, du blander noget sammen (Jeg svarer uden at nærlæse det hele).

Du starter bl.a. med billedpanel1.repaint(), formodentlig for at optegne nuværende billede i baggrunden, for derefter at tegne dine to streger. ?? Er det korrekt ??

For så virker det desværre ikke. Når du kalder repaint(), fortæller du systemet, at billedepanel1 skal gentegnes, når guitråden har tid. Og det har den først, når du har afsluttet resten af metoden.

Flyt de "midlertidige" streger ind i dit billedepanel, så det hele gentegnes under et.
Avatar billede pblv Nybegynder
15. september 2003 - 13:50 #2
Jeg kører repaint for at fjerne de streger der har været der! For så at tegne nogle nye streger efterfølgende, et andet sted. så der altid kun er 2 streger tegnet.
Eller at det ser ud somom stregerne flytter sig...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester