Witam!
Piszę w sprawie pomocy przy wywołaniu odpowiedniej metody w zależności od tego ,który obiekt ją wywołuje.
Może przedstawię krótko problem tak chyba będzie najlepiej.
Częśc klasy GWindow:
grafika = new JPanel() {
public void paint( Graphics g ) {
Graphics2D g2 = ( Graphics2D ) g;
tmp = 0;
g2.draw(new Rectangle2D.Double(0,0,202,202));
for(int j = 0;j < 10; j++) {
for( int i = 0;i < 200; i += 20 ) {
g2.draw( new Rectangle2D.Double(i+1,tmp+1,20,20) );
g2.setColor(c);
g2.fillRect(i+3, tmp+3, 19, 19);
}
tmp += 20;
}
PainShip(g2);
}};
Metoda PaintSip:
private void PainShip(Graphics2D g2) {
Dimension p = new Dimension();
Dimension k = new Dimension();
int dlugosc = 0;
Kierunek kierunek;
g2.setColor(Color.blue);
for( int i = 0;i< 10;i++) {
dlugosc = gArea.statki[i].getRozmiar();
p = (gArea.statki[i].getPoczatek());
k = (gArea.statki[i].getKoniec());
kierunek = gArea.statki[i].getDirect();
if( kierunek == Kierunek.PIONOWO){
for( int j = 0 ;j<dlugosc;j++) {
g2.fillRect(p.width*20+3,(p.height+j)*20+3, 19, 19);
}
}
else if( kierunek == Kierunek.POZIOMO) {
for( int l = 0 ;l<dlugosc;l++) {
g2.fillRect((p.width+l)*20+3,p.height*20+3, 19, 19);
}
}
}
}
Pierwsza metoda Paint rysuje w panelu plansze 10x10.
W metodzie tej zostaje an koncu wywołana druga metoda PaintShip ona odpowiada za rysowanie statku pobranego z tablicy statkow na planszy.
Problem sprowadza się do tego ,że chciałbym w oknie głównym utworzyć dwa obiekty klasy głównej ( zawierającej min. te metody ) i na pierwszej planszy chciałbym pokazać statki ,a na drugiej chciałbym aby pozostały one niewidoczne.
I w zasadzie chodzi o to ,aby w drugim obiekcie klasy GWindow nie wywoływać metody PaintShip.
Proszę o jakieś rady z góry dzięki.