Toon posts:

Java button diameter + omhoog

Pagina: 1
Acties:

Verwijderd

Topicstarter
Laat ik de vraag dan maar anders stellen. Dit is het stukje code waar ik het in moet veranderen maar ik weet niet hoe. Ten eerste heb ik wel het eigen initiatief genomen want ik heb de hele script zelf in elkaar gezet en werkt perfect.
Het probleem is dat nu alleen de diameter wordt vergroot. Maar ik wil ook dat de X en/of de Y as kunnen verplaatsen zodra ik op de button druk.

code:
1
2
3
4
5
 if (e.getSource() == knop2)
{
diameter=diameter+5;
repaint();
}

Verwijderd

Topicstarter
ik heb ook nog een aantal dingen gebprobeerd zoals
code:
1
 y=+10

maar dit werkt niet, Ik heb in me boek rondegesnuffelt maar ik kan niks vinden over het verplaatsen van een object via de x of y as. Ik gebruik het boek "En dan is er JAVA"

  • Tim Schuhmacher
  • Registratie: Januari 2000
  • Laatst online: 22-08 17:19

Tim Schuhmacher

abasios

Komt het niet doordat je button staat in een container die een Layoutmanager gebruikt die de positie en grootte van de button zelf bepaald?

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
 {
setLayout (null);
diameter=10;
knop=new Button ("boven/klein");
knop.setBounds(100,20,90,20);
knop.addActionListener (this);
add (knop);


bedoel je dit soms??

[ Voor 11% gewijzigd door Verwijderd op 19-03-2003 20:29 ]


  • Cubix
  • Registratie: Juni 2001
  • Niet online
Volgens mij begrijp ik je probleem niet, want de oplossing is wel erg simpel. Net zoals je van de diameter een variabele hebt gemaakt kan je dat toch ook voor de positie doen? Maak dan bijvoorbeeld xPos en dan de knop; xPos = xPos + 10

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
Verwijderd schreef op 19 March 2003 @ 20:25:
ik heb ook nog een aantal dingen gebprobeerd zoals
code:
1
 y=+10

maar dit werkt niet, Ik heb in me boek rondegesnuffelt maar ik kan niks vinden over het verplaatsen van een object via de x of y as. Ik gebruik het boek "En dan is er JAVA"



Daarmee ga je geen 10 optellen bij y, maar ga je aan y de waarde 10 assignen.

Dit bedoel je?
code:
1
y += 10;


Je zult natuurlijk bij het verplaatsen van de cirkel de cirkel moeten wissen op de oude positie en opnieuw tekenen op de nieuwe.

https://fgheysels.github.io/


Verwijderd

Topicstarter
dat bedoel ik ongeveer, thnx whoami.

cubix ik ga geen nieuwe knop maken ik moet deze functie in 1 knop hebben niet in 2 knoppen.

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
 if (e.getSource() == knop4)
{
diameter=diameter-5;
y+=10;
repaint();
}


en daarbij krijg ik nu deze foutmelding:
"Applet1.java": Error #: 307 : variable y is not public in class java.awt.Component; cannot be accessed from outside package at line 71, column 1

Verwijderd

Is een java button uit java.awt? Dan kun je het formaat en positie veranderen
met buttonnaam.setBounds(x, y, lengte, hoogte). Je kunt dan voor x, y, lengte en hoogte een integer gebruiken.

Code wordt dan bijvoorbeeld:

if( e.getSource() == knop2) {
x += 10; // verplaatsing van 10 in x richting
y += 20; // verplaatsing van 20 in y richting
lengte += 5; // knop wordt 5 breder in lengte
hoogte +=5; // knop wordt 5 breder in hoogte
knop2.setBounds(x, y, lengte, hoogte);
}


Edit: ben dus wat te laat zie ik. Succes verder!

[ Voor 6% gewijzigd door Verwijderd op 19-03-2003 20:43 ]


Verwijderd

Topicstarter
er moet een rondje groter/kleiner worden en omhoog/omlaag zodra ik op de knop druk.

Verwijderd

Ik heb een applet als naam Test. Hierin wordt de cirkel vergroot.
Vang je de knop wel af met actionListener: knop.addActionListener(this); ?

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
31
32
33
34
35
36
37
38
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class Test extends Applet implements ActionListener {
    private int x, y, diameter;
    private Button knop;
    
    public void init() {
        this.setSize(500,500);
        this.setLayout(null);
        
        x = 240;
        y = 240;
        diameter = 20;
        
        knop = new Button("Druk op mij!");
        knop.setBounds(10, 10, 75, 25);
        knop.addActionListener(this);
        this.add(knop);
        
    }
    
    public void paint(Graphics g) {
        g.setColor(Color.darkGray);
        g.drawOval(x, y, diameter, diameter);
    }
    
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==knop) {
            diameter += 10;
            y -= 5;
            x -= 5;

            repaint();
        }
    }
}

[ Voor 3% gewijzigd door Verwijderd op 19-03-2003 21:16 ]


Verwijderd

Topicstarter
thnx!! dat was precies wat ik zochte.... hij doet het nu helemaal ;)..... sommige codes worden anders beschreven zoals y-=5 ik doe dit zo y=y-5 en net zoals dat private.... ik heb alleen int....

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
Verwijderd schreef op 19 March 2003 @ 22:33:
thnx!! dat was precies wat ik zochte.... hij doet het nu helemaal ;)..... sommige codes worden anders beschreven zoals y-=5 ik doe dit zo y=y-5 en net zoals dat private.... ik heb alleen int....


code:
1
y -= 5;

is identiek aan
code:
1
y = y - 5;


private is een access modifier.

Als je al die dingen nog niet snapt (of er nog nooit van gehoord hebt), dan kan ik je alleen maar aanraden om eens een goed boek te kopen over programmeren in Java, en veel te lezen en te leren.

[ Voor 3% gewijzigd door whoami op 19-03-2003 22:35 ]

https://fgheysels.github.io/


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

whoami schreef op 19 March 2003 @ 22:35:
dan kan ik je alleen maar aanraden om eens een goed boek te kopen over programmeren in Java, en veel te lezen en te leren.
Ik gebruik het boek "En dan is er JAVA"
;)

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
hmm.....

Koop een beter boek, dan. :)

https://fgheysels.github.io/


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Inderdaad een beter boek. Dat is dat prutboek van Gert Jan Laan. Ik krijg er nog rillingen van eigenlijk.
Pagina: 1