Korzystam z biblioteki graficznej G i teraz mam taki kod:
Menu.java:
package game.logical;
import no.geosoft.cc.graphics.*;
public class Menu extends GObject implements GInteraction {
private GWindow window;
private GScene scene_;
private int sub;
public Menu (GWindow window, GScene scene_) {
this.scene_ = scene_;
this.window = window;
this.MainMenu();
this.window.startInteraction(this);
this.sub = 0;
}
public void MainMenu() {
GObject mimg = new MenuImage("menu.jpg", 0, 0);
this.scene_.add(mimg);
}
public int GetSub() {
return this.sub;
}
public void SubMenu(int x) {
switch(x) {
case 2:
break;
case 3:
//System.out.println("Autorzy");
GObject subm = new MenuImage("crew.jpg", 0, 170);
this.scene_.add(subm);
scene_.refresh();
break;
case 4:
break;
case 5:
break;
}
this.sub = 1;
}
public void event (GScene scene, int event, int x, int y) {
switch (event) {
case GWindow.BUTTON1_UP :
if(x<215 && x>85 && this.GetSub()==0) {
if(y<251+30*1 && y>251+30*0) {
// nowa gra
} else if(y<251+30*2 && y>251+30*1) {
// 2. etap
} else if(y<251+30*3 && y>251+30*2) {
// autorzy
this.SubMenu(3);
} else if(y<251+30*4 && y>251+30*3) {
// wyniki
} else if(y<251+30*5 && y>251+30*4) {
// pomoc
} else if(y<251+30*6 && y>251+30*5) {
// wyjscie
System.exit(0);
}
} else if(x>50 && x<139 && y>405 && y<430 && this.GetSub() == 1) {
this.MainMenu();
}
break;
}
}
}
MenuImage.java:
package game.logical;
import java.io.File;
import no.geosoft.cc.graphics.*;
public class MenuImage extends GObject {
private GSegment segment_;
private int x, y;
public MenuImage(String FileName, int x, int y) {
segment_ = new GSegment();
addSegment (segment_);
GImage image = new GImage (new File (FileName));
image.setPositionHint (GPosition.SOUTHEAST);
this.segment_.setImage (image);
this.x = x;
this.y = y;
}
public void draw() {
segment_.setGeometry (this.x, this.y);
}
}
i teraz jak wywołuje SubMenu(3); to scene_.refresh(); nie powoduje wywołania funkcji draw() z klasy MenuImage. Funkcja jest wywoływana dopiero jak np. powiększe okno (maksymalizacja), ale czemu to nie mam pojęcia.