Hallo alle zusammen.
Ich habe einige Probleme mit meinem Quellcode da kommt immer eine Fehlermeldung die für mich unklar ist.
Nun möchte ich hier euch um Hilfe bitten. Ich muss von der Schule aus ein Dame Spiel programmieren, das von der menu das Spiel starten kann und
das ich wie z.B. von Menü aus noch beenden kan usw.
Fehlermeldung:
Compiliere C:\Dokumente und Einstellungen\manwel\Eigene Dateien\- Programming -\-- Dame --\MenuDame.java mit Java-Compiler
MenuDame.java:157:22: non-static variable this cannot be referenced from a static context
MenuDame frame = new MakeFrame();
^
1 error
Meine Quellcode:
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class MenuDame {
public class MakeFrame extends Frame{
public MakeFrame(){
setTitle("Dame Spiel");
addWindowListener(new TestWindowListener());
add(new DrawingPanel());
setSize(450,500);
setVisible(true);
}
public class DrawingPanel extends Panel{
public void paint(Graphics g){
for(int i=1; i<=8; i++){ // i entspricht y-Koordinate
for(int j=1; j<=8; j++){ // j entspricht x-Koordinate
// erste zeile beginnend mit weiß
if(i%2==1 & j%2==1){
g.setColor(Color.GRAY);
g.drawRect(40+(j-1)*40, 40+(i-1)*40, 40, 40);
}
if(i%2==1 & j%2==0){
g.fillRect(40+(j-1)*40, 40+(i-1)*40, 40, 40);
}
// zweite zeile beginnend mit schwarz
if(i%2==0 & j%2==1){
g.fillRect(40+(j-1)*40, 40+(i-1)*40, 40, 40);
}
if(i%2==0 & j%2==0){
g.drawRect(40+(j-1)*40, 40+(i-1)*40, 40, 40);
}
}
}
// Fiegur zeichnen von oben
for(int i=1; i<=3; i++){
for(int j=1; j<=8; j++){
// erste zeile beginnend mit weiß
if(i%2==1 & j%2==0){
g.setColor(Color.WHITE);
g.drawOval(j*40, 40+(i-1)*40, 40, 40);
}
// zweite zeile beginnend mit schwarz
if(i%2==0 & j%2==1){
g.drawOval(40+(j-1)*40, 40+(i-1)*40, 40, 40);
}
}
}
// Fiegur zeichnen von unten
for(int i=8; i>=6; i--){
for(int j=8; j>=1; j--){
// erste zeile beginnend mit weiß
if(i%2==0 & j%2==1){
g.setColor(Color.BLACK);
g.drawOval((j*40), i*40, 40, 40);
}
// zweite zeile beginnend mit schwarz
if(i%2==1 & j%2==0){
g.drawOval(j*40, i*40, 40, 40);
}
}
}
}
}
}
public MenuDame () {
Frame f = new Frame ("Damen Spiel");
f.addWindowListener(new TestWindowListener());
f.setMenuBar(this.getMenubar ());
f.setSize(450,500);
f.setVisible(true);
}
protected MenuBar getMenubar(){
// Menüleiste anlegen
MenuBar menueLeiste = new MenuBar();
// Ein Menü anlegen ------------------------------------------------------
Menu datei = new Menu("Datei");
Menu bearb = new Menu("Bearbeiten");
Menu extra = new Menu ("Extras");
Menu help = new Menu("Hilfe");
Menu stuffe = new Menu("Stuffe");
Menu einst = new Menu("Einstellungen...");
// Einen Menüeintrag anlegen
MenuItem oeffnen = new MenuItem("Neu");
// Den Eintrag dem Menü hinzufügen
datei.add (oeffnen);
datei.add("leeres Brett");
datei.addSeparator();
datei.add("Beenden");
bearb.add("Rückgängig");
bearb.add("Wiederrufen");
help.add("Version");
help.add("Info");
//...das Menü dem Extramenü als Untermenü hinzufügen
extra.add(stuffe);
extra.add(einst);
// Das Untermenü mit Einträgen füllen
stuffe.add("Anfaenger");
stuffe.add("Fortgeschritten");
stuffe.addSeparator();
stuffe.add("Profi");
einst.add("Figur");
einst.add("Farbe");
// Das Extramenü der Leiste hinzufügen
menueLeiste.add(datei);
menueLeiste.add(bearb);
menueLeiste.add(extra);
menueLeiste.add(help);
return menueLeiste;
}
public class TestWindowListener extends WindowAdapter{ // windowsfenster min, max oder schießen
public void windowClosing(WindowEvent e){
e.getWindow().dispose();
System.exit(0);
}
}
public static void main (String[] args) {
MenuDame menusample = new MenuDame();
MenuDame frame = new MakeFrame();
}
}
Für eine schnelle Hilfe wäre ich sehr dankbar.
Mit freundlichen Grüßen.......
Ich habe einige Probleme mit meinem Quellcode da kommt immer eine Fehlermeldung die für mich unklar ist.
Nun möchte ich hier euch um Hilfe bitten. Ich muss von der Schule aus ein Dame Spiel programmieren, das von der menu das Spiel starten kann und
das ich wie z.B. von Menü aus noch beenden kan usw.
Fehlermeldung:
Compiliere C:\Dokumente und Einstellungen\manwel\Eigene Dateien\- Programming -\-- Dame --\MenuDame.java mit Java-Compiler
MenuDame.java:157:22: non-static variable this cannot be referenced from a static context
MenuDame frame = new MakeFrame();
^
1 error
Meine Quellcode:
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class MenuDame {
public class MakeFrame extends Frame{
public MakeFrame(){
setTitle("Dame Spiel");
addWindowListener(new TestWindowListener());
add(new DrawingPanel());
setSize(450,500);
setVisible(true);
}
public class DrawingPanel extends Panel{
public void paint(Graphics g){
for(int i=1; i<=8; i++){ // i entspricht y-Koordinate
for(int j=1; j<=8; j++){ // j entspricht x-Koordinate
// erste zeile beginnend mit weiß
if(i%2==1 & j%2==1){
g.setColor(Color.GRAY);
g.drawRect(40+(j-1)*40, 40+(i-1)*40, 40, 40);
}
if(i%2==1 & j%2==0){
g.fillRect(40+(j-1)*40, 40+(i-1)*40, 40, 40);
}
// zweite zeile beginnend mit schwarz
if(i%2==0 & j%2==1){
g.fillRect(40+(j-1)*40, 40+(i-1)*40, 40, 40);
}
if(i%2==0 & j%2==0){
g.drawRect(40+(j-1)*40, 40+(i-1)*40, 40, 40);
}
}
}
// Fiegur zeichnen von oben
for(int i=1; i<=3; i++){
for(int j=1; j<=8; j++){
// erste zeile beginnend mit weiß
if(i%2==1 & j%2==0){
g.setColor(Color.WHITE);
g.drawOval(j*40, 40+(i-1)*40, 40, 40);
}
// zweite zeile beginnend mit schwarz
if(i%2==0 & j%2==1){
g.drawOval(40+(j-1)*40, 40+(i-1)*40, 40, 40);
}
}
}
// Fiegur zeichnen von unten
for(int i=8; i>=6; i--){
for(int j=8; j>=1; j--){
// erste zeile beginnend mit weiß
if(i%2==0 & j%2==1){
g.setColor(Color.BLACK);
g.drawOval((j*40), i*40, 40, 40);
}
// zweite zeile beginnend mit schwarz
if(i%2==1 & j%2==0){
g.drawOval(j*40, i*40, 40, 40);
}
}
}
}
}
}
public MenuDame () {
Frame f = new Frame ("Damen Spiel");
f.addWindowListener(new TestWindowListener());
f.setMenuBar(this.getMenubar ());
f.setSize(450,500);
f.setVisible(true);
}
protected MenuBar getMenubar(){
// Menüleiste anlegen
MenuBar menueLeiste = new MenuBar();
// Ein Menü anlegen ------------------------------------------------------
Menu datei = new Menu("Datei");
Menu bearb = new Menu("Bearbeiten");
Menu extra = new Menu ("Extras");
Menu help = new Menu("Hilfe");
Menu stuffe = new Menu("Stuffe");
Menu einst = new Menu("Einstellungen...");
// Einen Menüeintrag anlegen
MenuItem oeffnen = new MenuItem("Neu");
// Den Eintrag dem Menü hinzufügen
datei.add (oeffnen);
datei.add("leeres Brett");
datei.addSeparator();
datei.add("Beenden");
bearb.add("Rückgängig");
bearb.add("Wiederrufen");
help.add("Version");
help.add("Info");
//...das Menü dem Extramenü als Untermenü hinzufügen
extra.add(stuffe);
extra.add(einst);
// Das Untermenü mit Einträgen füllen
stuffe.add("Anfaenger");
stuffe.add("Fortgeschritten");
stuffe.addSeparator();
stuffe.add("Profi");
einst.add("Figur");
einst.add("Farbe");
// Das Extramenü der Leiste hinzufügen
menueLeiste.add(datei);
menueLeiste.add(bearb);
menueLeiste.add(extra);
menueLeiste.add(help);
return menueLeiste;
}
public class TestWindowListener extends WindowAdapter{ // windowsfenster min, max oder schießen
public void windowClosing(WindowEvent e){
e.getWindow().dispose();
System.exit(0);
}
}
public static void main (String[] args) {
MenuDame menusample = new MenuDame();
MenuDame frame = new MakeFrame();
}
}
Für eine schnelle Hilfe wäre ich sehr dankbar.
Mit freundlichen Grüßen.......