[JAVA] paint in een panel

Pagina: 1
Acties:

  • Doublehomme
  • Registratie: Juli 2002
  • Niet online
Ik heb in een applicatie tabbladen gemaakt met swing. En op die tabbladen heb ik panels gemaakt. Nu wil ik op die panels paint() gebruiken om een grafiek te tekenen. Alleen krijg ik de paint niet te zien op het panel. :?

Dit staat er in de paint() van de panel:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
public class grafiek extends Panel
{
.......


public void paint( Graphics g )
{
     Graphics panel = this.getGraphics();
     panel.drawString( " blaat ", 50, 50);
}

}

  • LordMatanza
  • Registratie: Oktober 2002
  • Laatst online: 07-04-2023
hmmm, ik kan het zo niet zeggen...

[ Voor 83% gewijzigd door LordMatanza op 20-06-2003 14:29 ]


Verwijderd

Hmm, ik ben nog geen pro in java hoor maar waar slaat dit op ?

Java:
1
Graphics panel = this.getGraphics(); 


Je krijgt het graphics object wat gebruikt wordt om die bepaalde panel te tekenen toch al mee ? Volgens mij is het gewoon g.drawString ..

Verwijderd

Ja inderdaad gewoon g.drawString...maar je zei dat je je applicatie met Swing maakt? Moet je dan niet JPanel extenden en paintComponent gebruiken ipv Panel en paint :?

  • Doublehomme
  • Registratie: Juli 2002
  • Niet online
Alleen de tabbladen heb ik met swing gemaakt, de rest heb ik gewoon met awt gemaakt, dus ook de panels

Verwijderd

Waarom mix je dan AWT en Swing? Over het algemeen wordt dat vaak afgeraden...tenzij je weet wat je aan het doen bent..maar in dit geval zou ik ook JPanel extenden...kan nooit kwaad. (niet dat ik een fan van Swing ben)

  • Doublehomme
  • Registratie: Juli 2002
  • Niet online
Ja, ik weet dat het niet zo slim is om te mixen, maar ik wist niet hoe ik anders die tabbalden moest maken...
Die werken nu goed, en ik wil er dus alleen nog een paint() op krijgen.
maar in dit geval zou ik ook JPanel extenden...kan nooit kwaad
dit heb ik ook al geprobeerd, maar dit werkte ook niet

  • Donderwolk
  • Registratie: Januari 2002
  • Laatst online: 11-06 11:16
Ik zie meerdere mogelijkheden:

Weet je zeker dat je je panel goed hebt geplaatst op je applet/application?

Roep je de methode repaint() wel aan van het paneel? (Test dit eens door je programma te minimaliseren en te maximaliseren en kijk of er dan wel wat wordt getekend)

Tevens kun je direct op het panel gaan tekenen en hoef je niet eerst getGraphics te doen. Dus meteen g.drawString( " blaat ", 50, 50 );

[ Voor 21% gewijzigd door Donderwolk op 20-06-2003 14:52 ]

Pwnd


  • Doublehomme
  • Registratie: Juli 2002
  • Niet online
Omdat g.drawString() niet lukte, heb ik het met getGraphics geprobeerd, maar dat werkt dus ook niet.
Als ik de applicatie minimaliseer of maximaliseer dan zie ik nog nix.

Verwijderd

Huh? heb je voor het painten geen canvas nodig? ik dacht dat dat met awt iig wel zo is.

  • SilentStorm
  • Registratie: November 2000
  • Laatst online: 18-03 14:45

SilentStorm

z.o.z

Kun je eens het stukje code laten zien waar je je 'grafiek'* class laat opbouwen? Het lijkt me waarschijnlijk dat je panel op de een of andere manier niet wordt getekend / dan wel onzichtbaar is.

* probeer voor classnamen hoofdletters aan te houden, Grafiek dus.

Localhost is where the heart is


Verwijderd

Je moet de methode paintComponent overriden ipv paint en de op het graphics object tekenen wat je mee krijgt, niet die van de panel. Dus je krijgt het volgende :
code:
1
2
3
4
public void paintComponent(Graphics g)
{
     g.drawString( " blaat ", 50, 50);
}


Verder kun je in swing ook tabs gebruiken, kijk maar eens in de java tutorial, sectie creating gui with swing: http://java.sun.com/docs/books/tutorial/uiswing/index.html

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Besef je wel wat je doet als je Swing en AWT gaat mixen? Weet je waar Swing en AWT in verschillen qua drawing?
Dat het nu wel werkt is allemaal heel fijn en mooi enzo, maar later iets veranderen (probeer maar een Swing screen over de AWT heen te krijgen) gaat je niet lukken :)
Pagina: 1