login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[JAVA] componenten paneel niet weergeven (Opgelost)

Offline koenvandalen - 06/05/2010 17:16
Avatar van koenvandalenLid Beste mensen,

Ik ben een inteface voor een programma aan het ontwerpen en ik loop tegen een probleem aan. Deze code genereert het paneel van het JFrame:

  1. public class Paneel extends JPanel
  2.  
  3. {
  4. private JButton knop;
  5. private JTextField tekst1, tekst2;
  6.  
  7. public TekenPaneel() {
  8. knop = new JButton ( "Teken" );
  9.  
  10. tekst1 = new JTextField (10);
  11. tekst2 = new JTextField (10);
  12. add ( new JLabel ( " Aantal" ) );
  13. add ( tekst1 );
  14. add ( tekst2 );
  15. add ( knop );
  16.  
  17. }
  18.  
  19. public void paint (Graphics g) {
  20. g.drawImage( buffer, 0, 0, null );
  21. }
  22.  
  23. }


Als ik deze code gebruik compileert alles goed, maar als ik dan het programma start zie ik mijn invoer en knop pas als ik er met mijn muis overheen ga. Hoe kan ik het aanpassen dat het wel werkt? Ik ben trouwens nog maar een beginnen in Java.

Alvast bedankt,

Koen

11 antwoorden

Gesponsorde links
Offline cloudstrife - 06/05/2010 17:43
Avatar van cloudstrife PHP beginner Ik denk dat je best de volledige code eens post. Want hiermee is men niet veel denk ik. Waar roep je bv die TekenPaneel() aan? Wat zit er in de variable buffer, etc...
Offline koenvandalen - 06/05/2010 17:59 (laatste wijziging 24/04/2011 22:53)
Avatar van koenvandalen Lid De link naar de volledige code :
(Is iets anders)

Groeten,

Koen
Offline Stijn - 06/05/2010 18:06
Avatar van Stijn PHP expert Waarom overschrijf je die paint methode? Als je toch een goeie reden hebt, plaats dan volgende regel bij je paint():

  1. super.paint(g);
Offline MiST - 06/05/2010 18:27
Avatar van MiST Lid én een '@override' annotatie. Ineens goede gewoonten aanleren ;)
Offline Stijn - 06/05/2010 18:42
Avatar van Stijn PHP expert
MiST schreef:
én een '@override' annotatie. Ineens goede gewoonten aanleren ;)
@Override, leer het dan tenminste goed aan .
Offline koenvandalen - 06/05/2010 18:45 (laatste wijziging 06/05/2010 18:46)
Avatar van koenvandalen Lid Als ik super.paint(g) toevoeg:
  1. public void paint (Graphics g) {
  2.  
  3. g.drawImage( buffer, 0, 0, null );
  4. super.paint(g);
  5. }

dan worden de buttons enzo goed weergeven, maar dan werkt mijn klasse niet meer. Deze klasse is om een aantal veelhoeken op het scherm te tekenen. Dit lost dus het button probleem op, maar de figuren verschijnen niet meer.

Koen
Offline Stijn - 06/05/2010 18:48
Avatar van Stijn PHP expert Die @Override moet voor public komen (of erboven). Dat is een methode annotatie. Kan je eens een screenshot geven van voor het plaatsen van de buttons en dan ééntje van na het plaatsen van de buttons.
Offline koenvandalen - 06/05/2010 18:49
Avatar van koenvandalen Lid
Citaat:
Kan je eens een screenshot geven van voor het plaatsen van de buttons en dan ééntje van na het plaatsen van de buttons.


Hoe bedoel je? Ik snap het niet.

Koen
Offline Stijn - 06/05/2010 18:52
Avatar van Stijn PHP expert Geef een screenshot van je programma...
Offline koenvandalen - 06/05/2010 18:59 (laatste wijziging 24/04/2011 22:54)
Avatar van koenvandalen Lid Aha,

zie screen1.jpg

En als ik dan de vakjes invul en op teken druk gebeurd er niets.

Koen

EDIT: Ik heb het probleem opgelost door de functie paint() te hernoemen naar paintComponent();
Offline MiST - 08/05/2010 20:09
Avatar van MiST Lid
Stijn schreef:
[..quote..]@Override, leer het dan tenminste goed aan .


Eclipse doet dat wel voor je maar idd, Override moet met een capital letter 
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.229s