[JAVA] Graphics bij JPanel

Pagina: 1
Acties:

  • Icheb
  • Registratie: Augustus 2001
  • Laatst online: 03-05 16:56
Ik ben nog niet zo extreem lang bezig met GUI's in Java, en ben er dan ook absoluut nog niet zo goed in.

Op dit moment ben ik bezig met een programma'tje wat ik, voor zover mogelijk wil opbouwen uit Swing componenten, maar ik moet gebruik gaan maken van een aantal drawRect()'s. Daarnaast is het ook nog eens de bedoeling dat de Rects die gemaakt worden gewist kunnen worden van de JPanel waar ze op staan.

Ik ben al bezig geweest met een repaint van het JFrame waar het JPanel weer op staat, maar dat zorgt een klein beetje voor het feit dat de Rects die ik maak niet meer 'on top' staan, dus ze zijn maar heel even zichtbaar.

Ik heb geen enkel idee meer hoe ik ervoor kan zorgen dat de dingen die ik met de Graphics maak zichtbaar blijven, maar deze nog wel kan wissen.

Daarnaast moet ik even toegeven dat ik hier met 3 java boeken zit en mijn firefox een tab of 10 met Google open heeft staan, maar ik heb nu echt even een harde trap in de juiste richting nodig.

Kan iemand mij hiermee helpen ?

sebsoft.nl


  • -Rombo-
  • Registratie: April 2002
  • Laatst online: 15-02 19:54
gebruik maken van een Canvas om hierop dingen te tekenen

Verwijderd

Java is bij mij al wel een tijdje geleden.

Maar uit je post kan ik niet afleiden of je nu wel een graphics object gebruikt waarom je tekent en die dan toevoegt aan je JPanel

  • Icheb
  • Registratie: Augustus 2001
  • Laatst online: 03-05 16:56
Verwijderd schreef op zaterdag 02 juli 2005 @ 14:43:
Java is bij mij al wel een tijdje geleden.

Maar uit je post kan ik niet afleiden of je nu wel een graphics object gebruikt waarom je tekent en die dan toevoegt aan je JPanel
Ik gebruik:
Java:
1
2
3
4
5
6
7
        Graphics g = GUI.vragen.getGraphics();
        Graphics2D g2 = (Graphics2D) g;
        // Kleur kiezen
        Color rood = new Color(255,0,0);
        g2.setColor(rood);
        
        g2.drawRect(getRandomX(),getRandomY(),getRandomX(),getRandomY());

Waarbij GUI.vragen het JPanel is.
-Rombo- schreef op zaterdag 02 juli 2005 @ 14:43:
gebruik maken van een Canvas om hierop dingen te tekenen
Ik zal hier even naar kijken, Canvas klinkt alsof het gemaakt is om op te tekenen :)

sebsoft.nl


  • -Rombo-
  • Registratie: April 2002
  • Laatst online: 15-02 19:54
als ge interesse hebt kan ik u een voorbeeldoefening van in school doormailen?

  • Icheb
  • Registratie: Augustus 2001
  • Laatst online: 03-05 16:56
-Rombo- schreef op zaterdag 02 juli 2005 @ 14:49:
als ge interesse hebt kan ik u een voorbeeldoefening van in school doormailen?
Graag :)

Stuur maar naar icheb _at_ xs4all.nl _/-\o_

sebsoft.nl


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 05-05 21:38

Robtimus

me Robtimus no like you

De standaard manier is de paintComponent method te overriden:
Java:
1
2
3
4
5
6
7
8
protected void paintComponent(Graphics g)
{
    super.paintComponent(g); // ALWAYS USE THIS!!
    if (g != null)
    {
        // do your additional drawing here.
    }
}
Over het wissen: je zou een Collection (List) kunnen gebruiken om hierin (eigen?) objecten op te slaan die rechthoeken vorostellen. De java.awt.Rectangle is hiervoor uitstekend bv.

Dus dat additional drawing kan dan zijn (java 1.4):
Java:
1
2
3
4
5
for (Iterator i = rectangles.iterator(); i.hasNext(); )
{
    Rectangle r = (Rectangle)i.next();
    g.drawRect(r.x, r.y, r.width, r.height);
}
In andere eigen methods regel je dan het toevoegen en verwijderen van rectangles.

[ Voor 6% gewijzigd door Robtimus op 02-07-2005 15:04 ]

More than meets the eye
There is no I in TEAM... but there is ME
system specs

Pagina: 1