Drzewo z ChceckBoxami
CD - 28-02-2006 13:16
Drzewo z ChceckBoxami
Starałem się znaleźć na googlech, ale nie mogę. Nie wiem, może nie potrafię szukać. Chciałbym zrobić drzewo z JCheckBoxów (tzn. JCheckBoxy na liściach, a na węzłach zwykły tekst). Logiczne by mi się wydawało, gdyby JTree mogło mieć na liściu lub węźle dowolny JComponent. Niestety, pomimo usilnych prób, nic nie mogłem wykombinować, a takie coś:
DefaultMutableTreeNode top = new DefaultMutableTreeNode("Zdjęcia");
DefaultMutableTreeNode galaz; galaz = new DefaultMutableTreeNode(new JCheckBox()); top.add(galaz);
jTree = new JTree(top);
Niestety, domyślnie jest to zamieniane na string, z więc w liściu mam toString() komponentu typu JCheckBox, a nie grafike samego komponentu, ani też jego funkcjonalności.
Nie wierzę, że musze to zrobić ręcznie i chyba jest jakiś sposób, ale jaki?
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Brzezi - 28-02-2006 13:16
sob, 25 lut 2006 o 17:55 GMT, CD napisał(a):
> Nie wierzę, że musze to zrobić ręcznie i chyba jest jakiś sposób, ale jaki?
w dokumentacji do klasy JTree masz linka do tutoriala jest tam przyklad odnosnie pisania Rendererow, ktorego pisania nie unikniesz w tym co chcesz zrobic...
i polecam zrobienie wlasnego modelu dla drzewa, wykozystywanie tych DefaultTreeNodeow jest jak dla mnie wysoce niewygodne..., a tak mozesz zrobic model operujacy na wlasnych klasach, ktore bedzie rozumial twoj renderer i odpowiednio przedstawial w drzewie...
Pozdrawiam Brzezi -- [ E-mail: brzezi@enter.net.pl ][ Everything should be made as simple as ] [ Ekg: #3781111 ][ possible, but not simpler. ] [ LinuxUser: #249916 ][ -- Albert Einstein ]
CD - 28-02-2006 13:16
> i polecam zrobienie wlasnego modelu dla drzewa, wykozystywanie tych > DefaultTreeNodeow jest jak dla mnie wysoce niewygodne..., a tak mozesz > zrobic model operujacy na wlasnych klasach, ktore bedzie rozumial twoj > renderer i odpowiednio przedstawial w drzewie...
Co za szybka odpowiedź! :) W sumie jestem trochę zawiedziony że JTree okazuję się być tutaj raczej niezbyt uniwersalne. Chyba w takim razie zrobie taki uniwersalny JTree, gdzie będzie można wrzucić dowolny Bean. Ale to będzie roboty! Ehhh
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Filip Sielimowicz - 28-02-2006 13:16
Użytkownik "CD" <MailToCDWYTNIJTO@wp.pl> napisał w wiadomości news:5741.00000128.440097a2@newsgate.onet.pl... > > i polecam zrobienie wlasnego modelu dla drzewa, wykozystywanie tych > > DefaultTreeNodeow jest jak dla mnie wysoce niewygodne..., a tak mozesz > > zrobic model operujacy na wlasnych klasach, ktore bedzie rozumial twoj > > renderer i odpowiednio przedstawial w drzewie... > > Co za szybka odpowiedź! :) W sumie jestem trochę zawiedziony że JTree okazuję > się być tutaj raczej niezbyt uniwersalne. Chyba w takim razie zrobie taki > uniwersalny JTree, gdzie będzie można wrzucić dowolny Bean. Ale to będzie > roboty! Ehhh
Problem polega na tym, że chcesz złamać wzorzec MVC. Mylisz model z widokiem. Próbujesz do modelu danych wrzucać komponenty graficzne. Nie wiem więc, na czym ma tu polegać universalność, na pewno wybrałeś dość universalnądrogę do tego, by się z czasem kompletnie zamotać ;)
CD - 28-02-2006 13:16
> Problem polega na tym, że chcesz złamać wzorzec MVC. Mylisz model > z widokiem. Próbujesz do modelu danych wrzucać komponenty graficzne. > Nie wiem więc, na czym ma tu polegać universalność, na pewno wybrałeś > dość universalnądrogę do tego, by się z czasem kompletnie zamotać ;)
Nie wiem nawet co to jest MVC :/. Jednak tak sobie myślę, że skoro to co chcę zrobić łamie MVC, to równierz łamie je... JSplitPane. Przecież sytuacja jest analogiczna. W JSplitPane mogę umieścić 2 dowolne komponenty, czasem któryś z nich może byś niewidoczny. Jedyne różnice jakie tu widzę, to takie że JSplitPane ma dokładnie 2 takie, podczas gdy u mnie byłaby to dowolna ilość komponentów. No a poza tym to różnica taka, że ja bym je wyświetlał w postaci drzewa zamiast z lewej i prawej jak JSplitPane.
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Brzezi - 28-02-2006 13:16
sob, 25 lut 2006 o 19:53 GMT, CD napisał(a):
> Nie wiem nawet co to jest MVC :/. Jednak tak sobie myślę, że skoro to co chcę > zrobić łamie MVC, to równierz łamie je... JSplitPane. Przecież sytuacja jest > analogiczna. W JSplitPane mogę umieścić 2 dowolne komponenty, czasem któryś z > nich może byś niewidoczny. Jedyne różnice jakie tu widzę, to takie że JSplitPane > ma dokładnie 2 takie, podczas gdy u mnie byłaby to dowolna ilość komponentów. No > a poza tym to różnica taka, że ja bym je wyświetlał w postaci drzewa zamiast z > lewej i prawej jak JSplitPane.
czy dobrze rozumiem, ze chcesz zrobic, aby dalo sie dodawac do tego twojego drzewa komponenty? np:
yourTree.add(new JCheckBox());
??
Pozdrawiam Brzezi -- [ E-mail: brzezi@enter.net.pl ][ Do you realize how many holes there ] [ Ekg: #3781111 ][ could be if people would just take ] [ LinuxUser: #249916 ][ the time to take the dirt out of them? ]
CD - 28-02-2006 13:16
> czy dobrze rozumiem, ze chcesz zrobic, aby dalo sie dodawac do tego twojego > drzewa komponenty? np: > > yourTree.add(new JCheckBox()); > > ??
Zgadza się, właśnie tak chcę zrobić.
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
CD - 28-02-2006 13:17
> Problem polega na tym, że chcesz złamać wzorzec MVC. Mylisz model > z widokiem. Próbujesz do modelu danych wrzucać komponenty graficzne. > Nie wiem więc, na czym ma tu polegać universalność, na pewno wybrałeś > dość universalnądrogę do tego, by się z czasem kompletnie zamotać ;)
Może i źle zrobiłem, ale olałem ten model MVC. Wolałem to już zrobić szybko po swojemu niż zastanawiać się godzinami. Jakby ktoś chciał looknąć, to narazie wygląda to tak: http://www.spokosoft.republika.pl/ap...nentsTree.html
Najlepiej do sprawdzenia najpierw wpisać w pole edycyjne jakiś tekst, a potem klikać, łatwo się pokapować o co chodzi. Applet wymaga Javy v 1.5 :]
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MySQL} - schemat bazy kategorii sklepu internetowego (drzewo)
PgSQL - zapytanie - drzewo dokumentow
Drzeworyt, staloryt itp
Drzewo uniwersalne
[Oracle,php] between 5 and 10, Union ALL, arrays
Centrowanie w InDesignie
=?iso-8859-2?q?Zaproszenie_na_spotkanie_zwi=B1zane_z_serweram i_bazodanowymi?=
programista pl/sql wynagrodzenie, technologia
[Oracle] Materialy
Problem z wyrownaniem
zanotowane.pldoc.pisz.plpdf.pisz.plabsolwenci.keep.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 |
|