[Java] Classes

Pagina: 1
Acties:

  • Freak187
  • Registratie: November 2000
  • Laatst online: 10-09 19:52
Ik zit hier met een Java applet die niet echt wil werken.

Hier is de source code.

package untitled3;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;


public class Applet1 extends Applet implements ActionListener {
int i;
Panel paneel;
Button knop1, knop2, knop3, knop4;

public void init() {
setBackground( Color.blue );
setLayout( new BorderLayout() );

paneel = new Panel();
paneel.setLayout( new GridLayout( 4, 1, 20, 10 ) );



knop1 = new Button( "Derde etage" );
knop2 = new Button( "Tweede etage" );
knop3 = new Button( "Eerste etage" );
knop4 = new Button( "Begane grond" );

add( knop1 );
add( knop2 );
add( knop3 );
add( knop4 );

knop1.addActionListener( this );
knop2.addActionListener( this );
knop3.addActionListener( this );
knop4.addActionListener( this );

paneel.add( knop1 );
paneel.add( knop2 );
paneel.add( knop3 );
paneel.add( knop4 );

add( "East", paneel );

}

public void slaap( int millisec ) {
try { Thread.sleep( millisec ); }
catch( InterruptedException e ) {}
}

public void paint( Graphics g ) {
g.setColor( Color.white );
g.drawRect( 70, 10, 80, 240);
g.drawLine( 0, 10, 70, 10);
g.drawLine( 0, 70, 70, 70);
g.drawLine( 0, 130, 70, 130);
g.drawLine( 0, 190, 70, 190);
g.drawLine( 0, 250, 70, 250);
g.drawString( "derde", 15,40);
g.drawString( "etage", 15,50);
g.drawString( "tweede", 15,100);
g.drawString( "etage", 15,110);
g.drawString( "eerste", 15,160);
g.drawString( "etage", 15,170);
g.drawString( "begane", 10,220);
g.drawString( "grond", 15,230);
i=15;
g.drawRect( 75, i, 70, 50);
while ( i != 75 ) {
g.setColor( Color.white );
g.drawRect( 75, i, 70, 50);
g.setColor( Color.blue );
g.drawRect( 75, i, 70, 50);
i++;
g.setColor( Color.white);
g.drawRect( 75, i, 70, 50);
slaap( 7 );
}

}

public void actionPerformed ( ActionEvent e ) {
if ( e.getSource() == knop2 ){

}
}
}

De bedoeling van dit programma is een lift installatie. Ik heb nu alles getekend en de lift beweegt. Het probleem is alleen dat ik nu een classe moet maken die ik kan aanroepen in de actionPerformed zodat de lift op en neer kan gaan, ik vraag niet of iemand dit kan maken maar een beetje uitleg hoe dit kan zou zeer welkom zijn, bij voorbaat dank.

Kia Niro-EV 2024


  • nxt
  • Registratie: November 2001
  • Laatst online: 26-08 13:51

nxt

ik snap het probleem niet helemaal geloof ik,
maar als je een class instantieert in je Applet,
bv MyClass t=new MyClass();
dan kun je vanuit actionPerformed gewoon t aanspreken
is dat wat je bedoeld?

  • Freak187
  • Registratie: November 2000
  • Laatst online: 10-09 19:52
Ja dat is wat ik bedoel, kun je misschien uitleggen hoe ik dit hierin kan toepassen?

Is het mogelijk om Graphics g hierin toe te passen?

Kia Niro-EV 2024


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 09-09 11:02
De volgende keer graag alleen relevante code (hoewel ik je vraag nu al niet begrijp, geloof ik niet dat de code veel helpt), paint-methodes e.d. zijn vaak achterwege te laten en natuurlijk hoort code tussen [code] tags, dat is een heel stuk leesbaarder. Verder zul je je probleem wat duidelijker uit moeten leggen, denk ik. Lees hierover ook de FAQ.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 09-09 11:02
Met getGraphics() kan je een graphics object vragen om mee te tekenen, hoewel het conceptueel mooier is om al het geteken in je paint() methode te doen en met repaint() een update te vragen. Dit is echter niet ideaal voor animaties. Ik los dit meestal op door aan het eind van de paint methode weer een redraw() te doen, als de animatie nog niet ten einde is. Over animatie is ook het een en ander te vinden in de Java AWT tutorial trails.

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

Alarmnummer

-= Tja =-

een paar tips die niet direct met dit probleem te maken hebben.

1) ga geen action listener op een Applet plakken. Maar maak per button even een aparte actionListener implementatie aan zodat je niet elke keer terug hoeft te zoeken.
code:
1
2
3
4
5
6
7
class Button1ActionLister implements ActionListener{
   public void actionPerformed(){
    System.out.println("naar toestand 1");
   }
}

button1.addActionListener(new Button1ActionListener());

2) maak niet een object waarin alle info staat. Maar maak even een LiftObject aan zodat het allemaal een stuk overzichtelijker blijft.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Lift{
   private int verdieping;

   public int getVerdieping(){
     return verdieping;
   }

   public void gaOmhoog(){
    verdieping++;
   }

   public void gaOmlaag(){
    if(verdieping==0){
       throw new RuntimeException("kanniet door de grond");
    }

    verdieping--;
   }
}
Pagina: 1