|
Categorieën >
Object georiënteerd
[JAVA] componenten paneel niet weergeven (Opgelost)
|
|
|
offline
|
Lid
|
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:
public class Paneel extends JPanel
{
private JButton knop;
private JTextField tekst1, tekst2;
public TekenPaneel() {
knop = new JButton ( "Teken" );
tekst1 = new JTextField (10);
tekst2 = new JTextField (10);
add ( new JLabel ( " Aantal" ) );
add ( tekst1 );
add ( tekst2 );
add ( knop );
}
public void paint (Graphics g) {
g.drawImage( buffer, 0, 0, null );
}
}
public class Paneel extends JPanel { public TekenPaneel() { add ( new JLabel ( " Aantal" ) ); add ( tekst1 ); add ( tekst2 ); add ( knop ); } g.drawImage( buffer, 0, 0, null ); } }
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
|
|
|
offline
|
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...
|
koenvandalen – 06/05/2010 17:59 (Laatst gewijzigd op 24/04/2011 22:53)
|
|
offline
|
Lid
|
De link naar de volledige code :
(Is iets anders)
Groeten,
Koen
|
|
|
|
offline
|
Content Manager
|
Waarom overschrijf je die paint methode? Als je toch een goeie reden hebt, plaats dan volgende regel bij je paint():
|
MiST – 06/05/2010 18:27
|
|
offline
|
Lid
|
én een '@override' annotatie. Ineens goede gewoonten aanleren ;)
|
|
|
|
offline
|
Content Manager
|
MiST schreef: én een '@override' annotatie. Ineens goede gewoonten aanleren ;) @ Override, leer het dan tenminste goed aan  .
|
koenvandalen – 06/05/2010 18:45 (Laatst gewijzigd op 06/05/2010 18:46)
|
|
offline
|
Lid
|
Als ik super.paint(g) toevoeg:
public void paint (Graphics g) {
g.drawImage( buffer, 0, 0, null );
super.paint(g);
}
g.drawImage( buffer, 0, 0, null ); super.paint(g); }
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
|
Content Manager
|
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
|
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
|
Content Manager
|
Geef een screenshot van je programma...
|
koenvandalen – 06/05/2010 18:59 (Laatst gewijzigd op 24/04/2011 22:54)
|
|
offline
|
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();
|
Je moet ingelogd zijn om een reactie te kunnen posten.
|
|
|