Sichtbarkeit von Variablen

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Ich habe mir ein Package angelegt, das mehrere Klassen enthält. In einer Klasse habe ich nur Farben deklariert:

Code:
package MainPackage;

import java.awt.Color;

public class Farben {
	public Color hellgrau = new Color(200, 200, 200);
	public Color dunkelgrau = new Color(150, 150, 150);
	public Color gelbgruen = new Color(150, 230, 0);
	public Color gruen = new Color(0, 170, 0);
	public Color rot = new Color(230, 0, 0);
	public Color gelb = new Color(255, 255, 0);
}

Ich dachte mir, dass man die Variablen dann einfach von einer anderen Klasse aus aufrufen kann:

Code:
package MainPackage;

import java.applet.Applet;
import java.awt.Graphics;

public class Kreuzung extends Applet {

	public void init() {
		setLayout(null);
		setSize(600, 600);
		setBackground(hellgrau);
	}

	public void paint(Graphics stift) {

		stift.setColor(gelbgruen);
		stift.fillRect(0, 0, 145, 145);
		stift.fillRect(455, 0, 145, 145);
		stift.fillRect(0, 455, 145, 145);
		stift.fillRect(455, 455, 145, 145); 
      }
}

Er meldet mir jetzt, dass er die Variablen "hellgrau" und "gelbgruen" nicht finden kann. Die Variablen sind schon public, aber es läuft nicht. Hat jemand eine Idee?
 
entweder du holst dir eine instanz der klasse oder du deklarierst die variablen static (in diesem fall public final static oder final static)
 
Die Sache mit der Variablendeklaration geht nicht!

Eine Instanz holt man sich doch z.B. so, oder? :
Code:
Farben farben = new Farben();

kann mir mal jemand den Qeulltext posten, wie es auch wirklich funktioniert?
 
variante a

Code:
package MainPackage;

import java.awt.Color;

public class Farben {
	static final Color hellgrau = new Color(200, 200, 200);
	static final Color dunkelgrau = new Color(150, 150, 150);
	static final Color gelbgruen = new Color(150, 230, 0);
	static final Color gruen = new Color(0, 170, 0);
	static final Color rot = new Color(230, 0, 0);
	static final Color gelb = new Color(255, 255, 0);
}

Code:
package MainPackage;

import java.applet.Applet;
import java.awt.Graphics;

public class Kreuzung extends Applet {

	public void init() {
		setLayout(null);
		setSize(600, 600);
		setBackground(Farben.hellgrau);
	}

	public void paint(Graphics stift) {

		stift.setColor(Farben.gelbgruen);
		stift.fillRect(0, 0, 145, 145);
		stift.fillRect(455, 0, 145, 145);
		stift.fillRect(0, 455, 145, 145);
		stift.fillRect(455, 455, 145, 145); 
      }
}


variante b


Code:
package MainPackage;

import java.applet.Applet;
import java.awt.Graphics;

public class Kreuzung extends Applet {
        private static final Farben farben=new Farben();

	public void init() {
		setLayout(null);
		setSize(600, 600);
		setBackground(farben.hellgrau);
	}

	public void paint(Graphics stift) {

		stift.setColor(farben.gelbgruen);
		stift.fillRect(0, 0, 145, 145);
		stift.fillRect(455, 0, 145, 145);
		stift.fillRect(0, 455, 145, 145);
		stift.fillRect(455, 455, 145, 145); 
      }
}
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben