problem z odswiezaniem JLabel

0

Witam, mam problem z odswiezaniem JLabel. Korzystam z metod 'repaint' ale jedno naklada sie na drugie. Moze przedstawie fragment kodu:

JLabel err = new JLabel();
err.setBounds(10,180,130,20);

 if(warunek1)
{
 err.setText("warunek 1");
 //glowny panel
mainPanel.add(err);
}
else {
//probowalam w ten sposob usuwac, ze ustawie pusty string, ale to tez nie pomaga
 err.setText("");
err.repaint();
mainPanel.add(err);
mainPanel.repaint();

          if(warunek2){
 err.setText("warunek 2");
 //glowny panel
mainPanel.add(err);

}

 else {
//ma zniknac err
 err.setText("");
err.repaint();
mainPanel.add(err);
mainPanel.repaint();
}
}

probowalam tez korzystac z metody remove(), tzn

mainPanel.remove(err);

Suma sumarum, jeden napis naklada sie na drugi..

czy ktos moglby mi zasugerowac gdzie mam blad?

   pzdr,
         misty
0

Ten kod, to fragment konstruktora okna czy obsługi jakiegoś zdarzenia ?

0

to fragment ActionListenera. sa 3 pola ktore maja byc wypelnione-jak ktores z nich puste to(po kliknieciu na przycisk) ma sie wyswietlac 'err' z odpowiednim komunikatem dla danego przypadku.

0

Po pierwsze usuń z obsługi zdarzenia

JLabel err = new JLabel();
err.setBounds(10,180,130,20);

po drugie zmianę tekstu rób tak

 if(warunek1)
{
 err.setText("warunek 1");
 //ewentualnie dodaj to err.repaint();
}
0

Tak jak mowisz to nie dziala.
musze gdzies ustawic przeciez .setBounds i musze tez przeciez gdzies zadeklarowac JLabel err. rowniez samo err.setText nie spowoduje mi wypisania tekstu, daltego daje mainPanel.add(err).

0

dobra, mialam blad w jednym miejscu, juz dziala.

dzieki bardzo za pomoc! :)

pzdr,
misty

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