Gå til innhold

Abstrakte klasser som ødelegger?


Anbefalte innlegg

Kan noen forklare meg hvorfor jeg får meldingen "g cannot be resolved" i klassen view når jeg skriver :

 

r.tegn(g);

 

Her er klassene:

 

import java.awt.Color;
import java.awt.Graphics;

public abstract class Fasong {

public void tegn (Graphics g){};

public static final int SIRKEL=101; 
public static final int REKTANGEL=102; 
public static final int LINJE=103; 
public static final int KONTUR=104; 
public static final int FYLT=105;

public Color farge=Color.RED; 
public int fasongtype=Fasong.REKTANGEL; [CODE]
public int fylltype=Fasong.KONTUR; 
public int x=100,y=100;

public static int getFYLT() {
 return FYLT;
}
public static int getKONTUR() {
 return KONTUR;
}
public static int getLINJE() {
 return LINJE;
}
public static int getREKTANGEL() {
 return REKTANGEL;
}
public static int getSIRKEL() {
 return SIRKEL;
}
public Color getFarge() {
 return farge;
}
public void setFarge(Color farge) {
 this.farge = farge;
}
public int getFasongtype() {
 return fasongtype;
}
public void setFasongtype(int fasongtype) {
 this.fasongtype = fasongtype;
}
public int getFylltype() {
 return fylltype;
}
public void setFylltype(int fylltype) {
 this.fylltype = fylltype;
}
public int getX() {
 return x;
}
public void setX(int x) {
 this.x = x;
}
public int getY() {
 return y;
}
public void setY(int y) {
 this.y = y;
}  
}

 

import java.awt.Graphics;


public class Rektangel extends Fasong{

private int dx=10,dy=10;

public int getDx() {
 return dx;
}

public void setDx(int dx) {
 this.dx = dx;
}

public int getDy() {
 return dy;
}

public void setDy(int dy) {
 this.dy = dy;
}
 
public void tegn(Graphics g){ 
    
 if (fasongtype==Fasong.REKTANGEL){
 	if (fylltype==Fasong.KONTUR){
   g.drawRect(x,y,dx,dy);
 	}
 	else if (fylltype == Fasong.FYLT){
   g.fillRect(x,y,dx,dy);
 	}
 }
 	
 
} 

}

 

import javax.swing.JFrame;


public class view extends JFrame {

Rektangel r = new Rektangel();
//Constructor
public view(){
 
 this.setBounds(200,100,400,300);
 this.setVisible(true);
 //hindre minnelekasje fordi programmet startes mange ganger
 this.setDefaultCloseOperation(EXIT_ON_CLOSE);
 r.tegn(g);
}//end constructor

}//end main

Lenke til kommentar
Videoannonse
Annonse
Fordi du ikke har laget en variabel med navn "g" og instansiert den.

 

edit: en stund siden jeg har brukt JFrame, men kanskje det hjelper å smekke inn:

 

Graphics g = this.getGraphics();

8166665[/snapback]

 

Der forsvant feilmeldingen ja. Takk takk!

Men jeg får likevel ikke til å tegne det fordømte rektangelet... hmm.

Skal grave i hjernen...

Lenke til kommentar
Fordi du ikke har laget en variabel med navn "g" og instansiert den.

 

edit: en stund siden jeg har brukt JFrame, men kanskje det hjelper å smekke inn:

 

Graphics g = this.getGraphics();

8166665[/snapback]

 

Der forsvant feilmeldingen ja. Takk takk!

Men jeg får likevel ikke til å tegne det fordømte rektangelet... hmm.

Skal grave i hjernen...

8166723[/snapback]

 

Lagde alt på nytt, no funker det. vet ikke hva forskjellen var... genialt

Lenke til kommentar

Bra det er noen som får til dette. Holdt på i over en uke i strekk, men blir mest å stange hodet i veggen og det går utrolig sent fremover. Så tar meg friheten til å kopiere koden din. Selv om den ikke virker så er det lengre enn jeg har kommet. Send meg gjerne mer av løningen om noen har, jeg trenger poengene :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...