[Java] Buttons op een Canvas

Pagina: 1
Acties:
  • 100 views sinds 30-01-2008
  • Reageer

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Is het mogelijk om Buttons op een canvas te plaatsen ??

ik heb nu de volgende code alleen geeft hij de volgende melding:

"Applet1.java": Error #: 300 : method add(java.awt.Button) not found in class spel2.Applet1.Vragenprogramma at line 398, column 15

de code van de classe
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Vragenprogramma extends Canvas
{
int i, l, pos, randomGetal, test=0, stand=0, score=0;
double random;
String invoer, ant;
String vragenRij [] [];

void initsysteem()
{
    i=0;
    l=0;
    
    knop = new Button ("OK");
    vragenprg.add(knop);
    invoer = "";
    
    vak = new TextField(invoer,10);
    vragenprg.add(vak);
    volgende = new Button("Volgende");
    vragenprg.add(volgende);

    vragenRij = new String [10] [6];

    vragenRij [0] [0] = "Wat is de hoofdstad van         Nederland?";
    vragenRij [0] [1] = "A) Amsterdam";
    vragenRij [0] [2] = "B) Parijs";
    vragenRij [0] [3] = "C) Nibbixwoud";
    vragenRij [0] [4] = "D) Londen";
    vragenRij [0] [5] = "A";
    //ENZOVOORT

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Kun je VragenProgramma niet extenden van een Panel? Daar kun je zeker buttons op plaatsen.

Ik heb net even gekeken en je kan geen components op een canvas plakken, maar wel op een container.
http://java.sun.com/j2se/1.3/docs/api/java/awt/Container.html

Verwijderd

Nee een Canvas extend Component. Om Components te kunnen adden moet je een object hebben dat een Container extend.

Een Panel bijvoorbeeld

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
maar hoe ga je dr dan op tekenen :(

Verwijderd

Euh,
code:
1
2
3
4
public void paint(Graphics g) 
{
  g.blaat();
}

?

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
En dat moet je dan aanroepen van uit de public void paint van je Applet ??

Verwijderd

Volgus mij wordt de paint van alle ge-adde componenten automatisch aangeroepen vanuit de paint van de "parent".

Verwijderd

De paints van de objecten worden onafhankelijk van elkaar aangeroepen (Windows ziet alle compontenten als afzonderlijke vensters). Als je wil tekenen op een panel kan dat hetzelfde als op een canvas, maar je moet wel op de layoutmanager letten.

Een border- of gridlayout zal de componenten zodanig uitlijnen dat wat je tekenent achter de componenten komt te zitten en je dus niet kan zien (behalve misschien de (mogelijke) tussenruimte bij een gridlayout ;) ).

Veel makkelijker is het om een nieuw panel aan te maken, daar je canvas en knoppen aan toevoegen (daarvoor is een canvas tenslotte ook gemaakt). Met een layout manager kan je dat allemaal makkelijk regelen (of zet de layout op null en regel het zelf).

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Oke nu heb ik een panel met 1 tekstvak en 2 knoppen, Alleen kan ik geen text invoeren in het tekstvak. De knoppen reageren wel en de code die achter de knoppen zit werkt ook, ik kan dus alleen geen text invoeren

hoe kan dit ???

Verwijderd

Oke nu heb ik een panel met 1 tekstvak en 2 knoppen, Alleen kan ik geen text invoeren in het tekstvak.
Je bedoelt dat als je in het tekstvak gaat staan met je muiscursor en je drukt wat toetsen in, dat dit niet in het tekstvak verschijnt? (of bedoel je iets met setText() ?).

Volgens mij is zo'n tekstfield standaard editable...

TIP:
je kan ook doen:
code:
1
2
3
4
5
6
String vragenrij[][] = 
{
  { "vraag 1a", "vraag 1b", "vraag 1c" },
  { "vraag 2a", "vraag 2b", "vraag 2c" },
  { "vraag na", "vraag nb", "vraag nm" }
}

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
ja ik bedoel dat als je op het tekstvak klikt en je drukt op wat toetsen er geen text in verschijnt. Als ik via notepad een antwoord invoer en dan plak in de tekstbox werkt het wel

maar als ik wat wil invoeren via het toetsenbord gebeurt er nix.

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
En ook als ik vak.setEditable(true) gebruik kan ik er nog steeds nix in invoeren
Pagina: 1