jak zminić z private na public

0

witam mam metode: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { utworzoną w edytorze graficznym w netbeans, jest zablokowana edycja tekstu jak zmienić tą metodę na public

0

Tej metody nie zmienisz, ale możesz zrobić tak, że ona będzie wywoływać np. mojaMetoda() i tę metodę możesz zrobić public.
Pozdro.

0

Kiedys robilem GUI w NB (bardzo dawno) i te automatycznie generowane metody byly objete czyms w stylu:
// <-- autogenerated method do not modify
... metoda
// <-- end of autogenerated block
(dokladnie nie pamietam jak to wygladalo ale chodzi o idee)

Otworz plik w notatniku czy czymkolwiek co nie jest netbeansem a pozawala edytowac pliki tekstowe i usun te komentarze - od tej pory sa to normalne metody i mozesz je edytowac nawet w obrebie NB.

Nie jestem jednak pewien czy nadal tak jest, ale sprobowac mozesz.

Jednak najlepiej zrobic tak jak mowi Black - stworz nowa metode, i ja wywoluj sam oraz w tej autowygenerowanej metodzie - tak czy tak jest to czystsze niz wolanie listenera.

0

Ale w ogóle po co tą metodę ręcznie wywoływać? JButton ma nawet metodę doClick(), symulującą kliknięcie.

Poza tym nie możesz sobie wywoływać bezstresowo byle jakich metod nie będąc w EDT, bo program może zacząć ci się sypać.

0

Alez alez - jesli te metody nie robia nic z komponentami Swinga to moze sobie wywolywac z jakiego watka chce - oczywiscie dbajac o synchronizacje swoich watkow.

0

ok w końcu rozwiązałem problem w inny sposób dzięki za pomoc

0

Jakby ktoś jeszcze miał z tym problem:

  1. zaznaczyć komponent
  2. zakładka Code
  3. Variable Modifers i ten przycisk po prawej
  4. zmienić Acces z private na public.
0

Ale raczej autorowi chodziło o wywołanie konkretnej metody z zewnątrz, a nie dostanie się do obiektu.

0

@Razi91

To co Ty proponujesz to tylko zmiana widoczności samego komponentu i łatwiej się tam dostać klikając prawym->Customize Code i jak widzisz tam można samemu dodać, zmienić właściwości SAMEGO komponentu.
Autor miał na myśli zmianę widoczności metody np. MouseListener'a i tego nie zmienisz tam. Szukałem długo i faktycznie nie da się tego zmienić:/

Ale z drugiej strony MouseListener powinien być w tej samej klasie co zdefiniowany obiekt komponentu więc do końca nie wiem po co autor chce mieć public.

0

Tyle że to nie jest stricte MouseListener, a raczej w tym przypadku ActionListener. Projekty utworzone w NetBeans przy użyciu "New Desktop Application" (czy jakoś tak) używają Swing App Framework, który np używa refleksji do wywoływania metod reagujących na zdarzenia - co nie zmienia faktu, że powinny robić dokładnie to samo co te w listenerach.

O ile dobrze pamiętam :)

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