🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.java
7 messages
7 total messages Started by Jedeus Tue, 11 Oct 2011 10:04
Jak przechwycić zdarzenie
#152953
Author: Jedeus
Date: Tue, 11 Oct 2011 10:04
9 lines
1973 bytes
Witam serdecznie Grupowiczów.
Proszę o pomoc w rozwiązaniu następującego problemu. Mam utworzoną
klasę okna, w którym oprócz innych elementów znajdują się przyciski. W
głównej części programu tworzę obiekt tej klasy (okno = new Okno()) i
go wyświetlam (Okno.setVisible(true)) jako okno modalne. W jaki sposób
mogę przechwycić zdarzenie naciśnięcia buttona w oknie i obsłużyć je w
głównej części programu? W jaki sposób rozpoznać, który z buttonów
został naciśnięty? Za wszelką pomoc z góry dziękuję.
Pozdrawiam Andrzej.
Re: Jak przechwycić zdarzenie
#152954
Author: Przemysław Chmielewski
Date: Tue, 11 Oct 2011 10:39
17 lines
2162 bytes
On 11 Paź, 12:04, Jedeus <jed...@gmail.com> wrote:
> Witam serdecznie Grupowiczów.
> Proszę o pomoc w rozwiązaniu następującego problemu. Mam utworzoną
> klasę okna, w którym oprócz innych elementów znajdują się przyciski. W
> głównej części programu tworzę obiekt tej klasy (okno = new Okno()) i
> go wyświetlam (Okno.setVisible(true)) jako okno modalne. W jaki sposób
> mogę przechwycić zdarzenie naciśnięcia buttona w oknie i obsłużyć je w
> głównej części programu? W jaki sposób rozpoznać, który z buttonów
> został naciśnięty? Za wszelką pomoc z góry dziękuję.

Prostym rozwiązaniem wydaje się przekazanie callbacka i odpalenie go
w
zdarzeniu obsługującym kliknięcie tego przycisku.

> Pozdrawiam Andrzej.

Pozdrawiam
Re: Jak przechwycić zdarzenie
#152955
Author: Jedeus
Date: Tue, 11 Oct 2011 12:32
25 lines
2435 bytes
On 11 Paź, 12:39, Przemysław Chmielewski <przemek...@gmail.com> wrote:
> On 11 Paź, 12:04, Jedeus <jed...@gmail.com> wrote:
>
> > Witam serdecznie Grupowiczów.
> > Proszę o pomoc w rozwiązaniu następującego problemu. Mam utworzoną
> > klasę okna, w którym oprócz innych elementów znajdują się przyciski. W
> > głównej części programu tworzę obiekt tej klasy (okno = new Okno()) i
> > go wyświetlam (Okno.setVisible(true)) jako okno modalne. W jaki sposób
> > mogę przechwycić zdarzenie naciśnięcia buttona w oknie i obsłużyć je w
> > głównej części programu? W jaki sposób rozpoznać, który z buttonów
> > został naciśnięty? Za wszelką pomoc z góry dziękuję.
>
> Prostym rozwiązaniem wydaje się przekazanie callbacka i odpalenie go
> w
> zdarzeniu obsługującym kliknięcie tego przycisku.
>
> > Pozdrawiam Andrzej.
>
> Pozdrawiam

Witam jeszcze raz.
Czy mogę prosić o jakiś przykład, bo szczerze powiem, że trochę się
pogubiłem.
Z góry dziękuję.
Andrzej
Re: Jak przechwycić zdarzenie
#152956
Author: Przemysław Chmielewski
Date: Tue, 11 Oct 2011 19:12
36 lines
2161 bytes
On 11 Paź, 14:32, Jedeus <jed...@gmail.com> wrote:
> Witam jeszcze raz.
> Czy mogę prosić o jakiś przykład, bo szczerze powiem, że trochę się
> pogubiłem.
> Z góry dziękuję.
> Andrzej

Na szybko i tylko zeby pokazać koncepcje.

interface Callback {
void doSomething();
}

class ParentWindow {

  /// gdzie wyswietlasz okn
  ChildWindow w = new ChildWindow(new CallbackImpl());

}

class CallbackImpl implments Callback {
implementacja callbacka
}

class ChildWindow {
 Button b;
 ChildWindow(Callback callback) {
  this.callback = callback;
  b.addListener(...) {
    callback.doSomething();
  }
 }

}

Pozdrawiam
Re: Jak przechwycić zdarzenie
#152957
Author: Andrzej
Date: Wed, 12 Oct 2011 09:38
55 lines
2968 bytes
W dniu 2011-10-11 21:12, Przemysław Chmielewski pisze:
> On 11 Paź, 14:32, Jedeus<jed...@gmail.com>  wrote:
>> Witam jeszcze raz.
>> Czy mogę prosić o jakiś przykład, bo szczerze powiem, że trochę się
>> pogubiłem.
>> Z góry dziękuję.
>> Andrzej
>
> Na szybko i tylko zeby pokazać koncepcje.
>
> interface Callback {
> void doSomething();
> }
>
> class ParentWindow {
>
>    /// gdzie wyswietlasz okn
>    ChildWindow w = new ChildWindow(new CallbackImpl());
>
> }
>
> class CallbackImpl implments Callback {
> implementacja callbacka
> }
>
> class ChildWindow {
>   Button b;
>   ChildWindow(Callback callback) {
>    this.callback = callback;
>    b.addListener(...) {
>      callback.doSomething();
>    }
>   }
>
> }
>
> Pozdrawiam
Witam raz jeszcze.
Szukałem informacji w internecie ale to co znalazłem jeszcze bardziej 
zaciemniło obraz tego wszystkiego. Staram się jakoś zrozumieć i 
dostosować do własnych potrzeb powyższy kod ale jakoś to mi strasznie 
opornie idzie ;-)
Rozumiem, że interface Callback jest deklaracją interfejsu z metodami. 
class ParentWindow jest deklaracją klasy okna nadrzędnego, w którym jest 
wywoływane okno podrzędne. Kłopot jest w tym, że mam jeden konstruktor z 
parametrami. Nie wiem czy mogę dodać jeszcze jeden parametr w 
konstruktorze typu CallbackImpl (pewnie tak). class CallbackImpl 
implments Callback jest klasą, w której deklaruję metody interfejsu. 
Innymi słowy tworzę ciało metod, które zostały zadeklarowane przy 
deklaracji interfejsu. Z racji tego, że piszę aplikację w Netbeans'ie 
nie wiem za bardzo jak poradzić sobie z deklaracją nowego słuchacza i 
jaki to miałby być słuchacz.
To wszystko co rozumiem i czego pojąć nie mogę ;-) Będę wdzięczny za 
dalszą pomoc.
Pozdrawiam Andrzej.
Re: Jak przechwycić zdarzenie
#152958
Author: Przemysław Chmielewski
Date: Wed, 12 Oct 2011 17:02
11 lines
2076 bytes
On 12 Paź, 11:38, Andrzej <lin...@poczta.onet.pl> wrote:
> W dniu 2011-10-11 21:12, Przemysław Chmielewski pisze:
[ciach]
> Z racji tego, że piszę aplikację w Netbeans'ie
> nie wiem za bardzo jak poradzić sobie z deklaracją nowego słuchacza i
> jaki to miałby być słuchacz.
Dawno w swingu nie pisałem. Pod klika podpina się addActionListener.
Na tej stronie http://download.oracle.com/javase/tutorial/uiswing/events/actionlistener.html
znajdziesz kilka tutoriali, które mogą pomóc.

Pozdrawiam
Re: Jak przechwycić zdarzenie
#152959
Author: Andrzej
Date: Thu, 13 Oct 2011 17:55
15 lines
1902 bytes
W dniu 2011-10-12 19:02, Przemysław Chmielewski pisze:
> On 12 Paź, 11:38, Andrzej<lin...@poczta.onet.pl>  wrote:
>> W dniu 2011-10-11 21:12, Przemysław Chmielewski pisze:
> [ciach]
>> Z racji tego, że piszę aplikację w Netbeans'ie
>> nie wiem za bardzo jak poradzić sobie z deklaracją nowego słuchacza i
>> jaki to miałby być słuchacz.
> Dawno w swingu nie pisałem. Pod klika podpina się addActionListener.
> Na tej stronie http://download.oracle.com/javase/tutorial/uiswing/events/actionlistener.html
> znajdziesz kilka tutoriali, które mogą pomóc.
>
> Pozdrawiam
Witam
Chyba załapałem o co chodzi :-) Serdecznie dziękuję za pomoc.
Pozdrawiam Andrzej
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads