Kontrola obecności komponentu

0

Jak zrobić kontrole obecności komponentu, tzn. tego, czy jest aktualnie wyświetlany. isVisible() zawsze jest true, wiec się nie nadaje. Chodzi o to by, jakiś boolean był true gdy dany komponent, np. JPanel jest wyświetlony, a false gdy nie jest. W mojej klasie pochodnej od JPanela chce miec metody liczące i zmieniające labelki tylko gdy JPanel jest widoczny. Coś w stylu:

public void licze(){
  obliczenia();
  if(visible)
     odswiez_labelki();
}
0
cjtomekk napisał(a)

Jak zrobić kontrole obecności komponentu, tzn. tego, czy jest aktualnie wyświetlany.

W zasadzie sam sobie odpowiedziales w tym zdaniu. Ja tylko dodam RTFM. Pozdr.

0

Mało pomocna odpowiedź... takie to i ja moge udzielać...

0

Nie wiem czy dobrze cię zrozumiałem, ale wydaje mi się, że patrzysz na ten problem ze złej strony.
Chodzi o to co określasz stanem gdy JPanel jest widoczny bądź nie.
np.:
gdy użyasz CardLayout lub JTabbedPane, wybierana jest akcja wyświetlenia odpowiedniego
np.:

card.show(mojPanel,"panel");
licze();

Chodzi zatem o to, byś zaszył ową metode licze() w ramach jakiegoś listeneru np. ActionListener

public void actionPerformed(ActionEvent e) {
	if(e.getActionCommand().equals("show_panel1") {
		licze();
		card.show(panel1,"panel1");
	}
}

A i jeszcze jedno, metoda isVisible() będzie zwarcała true, dopuki nie użyjesz metody setVisible(false)

1 użytkowników online, w tym zalogowanych: 0, gości: 1