JTabbedPane i blokowanie wyjscia z zakladki
ufo ufo - 04-06-2006 00:38
JTabbedPane i blokowanie wyjscia z zakladki
Witam, mam JTabbedPane i w nim pare zakladek. Do każdej zakładki mam zmienna, która mowi czy wolno z niej wyjść czy nie. (jak sie wejdzie do zakładki i coś tam porobi, to wtedy zmienna jest na true i mozna ja opuscic i isc do innej, a jak nie to nie). Teraz mam zrobione to tak, ze w changelistenerze, w changestate, sprawdzam numer zakladki z jakiej chce wyjsc i patrze czy wolno z niej wyjsc. Jak tak, to pozwalam i przechodze do innej, a jak nie, to przełączam spowrotem, do tej samej zakladki z ktorej wyszlem.
To dziala, ale widać, że podświetlony jest tytul innej zakładki, potem widać że to wraca. Czy dalo by sie tak zrobic, żeby on wogule nie wchodzil do innej? nie wiem żeby jakos wejsc w moment, jak chce wyjsc z jednej, a nie wszedl jeszcze do drugiej :) wzglednie na te chwile zablokować ekran, zeby nie bylo widać, że inny tytul sie podświetlił?
myslaem zeby w mouselistenerze przechwicic klikniecie na tytul zakladki wtedy jak bym to zablokowal to nie doszla by informacja ze chce wyjsc z zakladki, ale jak dodam listenera do jtabbedpane to mozna klikac na calej zakladce nie tylko na tytule wiec to odpada,
ma może ktos jakis pomysł, jak by to zrobic ?
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Marek Puchalski - 04-06-2006 00:38
ufo ufo wrote: > Witam, mam JTabbedPane i w nim pare zakladek. Do każdej zakładki mam > zmienna, która mowi czy wolno z niej wyjść czy nie. (jak sie wejdzie do > zakładki i coś tam porobi, to wtedy zmienna jest na true i mozna ja opuscic > i isc do innej, a jak nie to nie). Teraz mam zrobione to tak, ze w > changelistenerze, w changestate, sprawdzam numer zakladki z jakiej chce > wyjsc i patrze czy wolno z niej wyjsc. Jak tak, to pozwalam i przechodze do > innej, a jak nie, to przełączam spowrotem, do tej samej zakladki z ktorej > wyszlem. > > To dziala, ale widać, że podświetlony jest tytul innej zakładki, potem widać > że to wraca. Czy dalo by sie tak zrobic, żeby on wogule nie wchodzil do > innej? nie wiem żeby jakos wejsc w moment, jak chce wyjsc z jednej, a nie > wszedl jeszcze do drugiej :) wzglednie na te chwile zablokować ekran, zeby > nie bylo widać, że inny tytul sie podświetlił? > > myslaem zeby w mouselistenerze przechwicic klikniecie na tytul zakladki > wtedy jak bym to zablokowal to nie doszla by informacja ze chce wyjsc z > zakladki, ale jak dodam listenera do jtabbedpane to mozna klikac na calej > zakladce nie tylko na tytule wiec to odpada, > > ma może ktos jakis pomysł, jak by to zrobic ?
Miesiąc temu proponowałem Tobie proste rozwiązanie. Nadpisz odpowiednio stateChaged i gotowe.
http://groups.google.pl/group/pl.com...d9e636682dc20d
Pozdrawiam
Marek
-- # You can't run away. Everyone's connected. # Marek Puchalski # Proud linux user: 409592
ufo ufo - 04-06-2006 00:38
> Miesiąc temu proponowałem Tobie proste rozwiązanie. Nadpisz odpowiednio > stateChaged i gotowe.
tak ino w tamtym sposobie tp.updateUI(); w tej linijce powialo sie duzo bledow ze nie mozna sie dostac do obiektu ktory robi ten update. a jak usuwalem te linijke to juz chodzilo :]
teraz tez robie statechanged ino wlasnie mam problem w tym jak je zrobic, nie mam problemu z odswiezaniem, nawet juz wpadlem na pomysl ze bede wylaczal zakladki i on sam mnie do nich nie wpusci (czyli zamist nie wychodzic poprostu nie bede mial gdzie wejsc)
problem mam teraz taki : czy dalo by sie rozgraniczyc i jak? wyjscie z zakladki od wejscia do nowej?
w sensie mam statechanged i mam jakis kod potem mama linie po ktorej moge dac komentarz "tu wyszles z zakladki" a potem cos i znowu "tu weszles do innej", zeby osiagnac cos takiego jak jest w listenerze do myszki gdzie idzie okreslic ze nacisnalem myszke i ze puscilem myszke
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
ufo ufo - 04-06-2006 00:38
na upierdliwego moge olac grzebanie w zakladkach i zrobic tak :
jak robie pierwsza zakladke, to odpalam sobie na boku watek, ktory co sekunde patrzy na te zmienna i jak jest true, to odblokowuje zakladki, a jak jest false to blokuje zakladki.
a jak wchodze do jakiejs zakladki, to daje zmienna z gory na nie,
wtedy wchodzac do zakladki, mam ustawiane na nie i musze w panelu zrobic na tak, (bo inaczej bedzie nie caly czas), a fakt : czy mam tak, czy nie, sprawdzam co sekunde w osobnym watku, ino wtedy, watek bedzie 99% swojego czasu marnowal, bo zmienna, interesuje mnie tylko jak chce zmienic zakladke
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Marek Puchalski - 04-06-2006 00:38
ufo ufo wrote: >>MiesiĂďż˝c temu proponowaÄąďż˝em Tobie proste rozwiĂďż˝zanie. Nadpisz odpowiednio >>stateChaged i gotowe. > > tak ino w tamtym sposobie > tp.updateUI(); > w tej linijce powialo sie duzo bledow ze nie mozna sie dostac do obiektu > ktory robi ten update. a jak usuwalem te linijke to juz chodzilo :]
Jakie błędy? Jaki listing stosu? Wrzuć ewentualnie kawałek kodu, to zobaczymy co się da zrobić. Kod który dostałeś wyciąłem z działającej aplikacji (ot, taki drobny test).
Pozdrawiam
Marek
-- # You can't run away. Everyone's connected. # Marek Puchalski # Proud linux user: 409592
ufo ufo - 04-06-2006 00:38
bledy mialem jak chcialem uzyc updateUI ale tego nie uzywam bo samo mi sie odswieza wiec nie musze tego pisac i nie ma bledow wiec ten watek pominmy.
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
ufo ufo - 05-06-2006 00:19
nie wime czemu nie ma mojej wczorajszej wypowiedzi ale coz napisze jeszcze raz
moim problemem nie jest odswiezanie ekranu wiec nie uzywam teraz wcale updateui(samo sie odswieza) wiec po co kod, ja szukam pomysl jak to zrobic z tymi zakladkami a o odswiezaniu nie mysl
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Marek Puchalski - 05-06-2006 00:19
ufo ufo wrote: > nie wime czemu nie ma mojej wczorajszej wypowiedzi ale coz napisze jeszcze > raz > > moim problemem nie jest odswiezanie ekranu wiec nie uzywam teraz wcale > updateui(samo sie odswieza) wiec po co kod, ja szukam pomysl jak to zrobic z > tymi zakladkami a o odswiezaniu nie mysl
Hmm... a nie możesz zrobić tak, że wszystkie inne zakładki wygasisz (setEnabled(false)) i zezwolisz na zmianę zakładki (setEnabled(true)) dopiero po pewnym czasie albo po spełnieniu pewnych kryteriów?
Pozdrawiam
Marek
-- # You can't run away. Everyone's connected. # Marek Puchalski # Proud linux user: 409592
sco2@op.pl - 07-06-2006 00:49
Witam, wystarczy stworzyc wlasny model dla JTabbedPane. Ustawiasz go korzystajac np. z setModel(..).
A model: class MyModel extends DefaultSingleSelectionModel { public void setSelectedIndex(int i) { if (costam) super.setSelectedIndex(); } }
Jesli nie wywolasz metody z linii z warunkiem to zakladka nie zmieni sie. Mam nadzieje ze to pomoze.
Pozdrawiam Marcin
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
=?iso-8859-2?Q?=5BMSSQL=5D_blokowanie_dost=EApu_do_bazy?=
[FB] blokowanie =?ISO-8859-2?Q?rekord=F3w_raz_jeszcze?=
[Oracle] Chwilowe blokowanie triggera (dla jednej sesji)
[MSSQL] blokowanie 'insert into ... values()'
[Mysql] Transakcja/blokowanie rekordu
blokowanie plikow w 'nio' w linuxie
Blokowanie tabeli, wiersza
PostgreSQL Blokowanie zapytan
blokowanie rekordu PLSQL
Blokowanie danych do edycji
zanotowane.pldoc.pisz.plpdf.pisz.plsulimczyk.pev.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|