Witam. Otóż mam następujący problem. Do JTabbedPane dodałem dwa panele, które miały być odpowiedzialne za obsługę grafiki rastrowej i wektorowej. W klasie grafiki wektorowej utworzyłem metodę rysującą lub kasującą układ współrzędnych w zależności od JCheckBox'a znajdującego się w innym panelu. Problem polega na tym, że układ jest rysowany również na panelu grafiki rastrowej, jeżeli ten jest akurat aktywny mimo, że zarówno treść metody jak i jej wywołanie odnosi się do panelu grafiki wektorowej. W czym może być problem? Z góry dziękuję za pomoc.
W klasie głównej:
tabbedpane.addTab("Grafika Rastrowa", pgr);
tabbedpane.addTab("Grafika Wektorowa",pgw);
W klasie grafiki wektorowej:
public void rysujUklad()
{
Graphics2D g2d = (Graphics2D)this.getGraphics();
g2d.setXORMode(Color.WHITE);
g2d.drawLine(0, this.getHeight()/2, this.getWidth(), this.getHeight()/2);
g2d.drawLine(getWidth()/2, 0, getWidth()/2, getHeight());
}
public void przelaczUklad()
{
rysujUklad();
}
W klasie osobnego panelu:
JCheckBox uklad = new JCheckBox();
public void actionPerformed(ActionEvent e)
{
Object source = e.getSource();
if(source == uklad)
{
pgw.przelaczUklad();
}
}
PROBLEM ROZWIĄZANY - NALEŻY MALOWAĆ W METODZIE paintComponent.