wyświetlanie nazwy zmiennej którą nadaliśmy

0

Witam, mam taki problem. Czy jest możliwość odczytania nadanej przez nas nazwy zmiennej JTextField (lub czegokolwiek innego bo zapewne jest jakieś rozwiazanie uniwersalne).
JTextField tx1=new JTextField(5);
Czyli czy jest możliwość wyprowadzenia nazwy zmiennej "tx1" do powiedzmy innego pola tekstowego

Do czego mi jest to potrzebne? Otóż chodzi mi o to aby przechodząc z jednego pola tekstowego do drugiego była wyświetlana (oczywiście w innym polu tekstowym) jego nazwa np:
gdy kursor jest aktywny na pierwszym polu - wyświetlane jest tx1
gdy kursor jest ustawiony na następnym polu - wyświetlane jest tx2 (lub dowolna nazwa która jest nazwą zmiennej).

Z góry dziękuję za wszelką pomoc lub wskazanie jakiegoś help'a gdzie mogę to znaleźć.
Pozdrawiam

0

ee?

0

Chodzi mu o to :


int abzc = 0;
string zm;
zm = "abzc";

z tym, ze to pobranie "azbc" jako nazwy zmiennej ma być automatycznie wykonane.

0

Wiem o co mu chodzi.. ale mnie wgniotło w siedzenie z wrażenia, że takie dziwy chce...
@temat:
Tak tego nie zrobisz (generalnie da się przez reflection api, ale ono nie do tego służy i tak się nie powinno robić)
do każdego JTextFielda powinieneś dodać focuslistenera - przy focusgain zależnie od tego, który to jtextfield, taką sobie wyświetlać nazwę...

0

No właśnie to jest dość ciekawy problem, bo że tak powiem ręcznie jest do zrobienia. Ale chyba nic takiego nie ma wpisanego w biblioteki Javy. Chciałem się upewnić.

A potrzebne jest do pewnego formularza powiązanego z bazą danych. Jeśli w formularzu będzie wyświetlać się nazwa zmiennej którą nadaliśmy i ta sama nazwa będzie występować w bazie danych (nazwa kolumny) to łatwo można znaleźć i poprawić błąd. Przetestowane i sprawdzone, ale wcześniejsza wersja programu nie była napisana w Javie ;-)

0

Do tego służy debugger.

0

Po wielu chwilach zastanowienia, wydaje mi się że prościej będzie zrobić odwrotną rzecz, czyli Stringa zamienić na zmienną. A najlepiej jakby program wykonywał pętlę po kolejnych nazwach kolumn w bazie danych i pobierał z nich nazwy i te nazwy zamieniał w kolejne zmienne JTextField. Tylko co zrobić aby kolejne nazwy w miarę przechodzenia do kolejnego JText Field i aktywowania tam kursora wyświetlały się w jakimś konkretnym polu tekstowym?
Popróbuję, może się uda a może nie :-) Jeśli ktoś miał podobny problem to z wielką radością przyjmę każdą podpowiedź :-)

Dziękuję za dotychczasowe podpowiedzi.....
...jeszcze z 10 lat i nauczę się Javy ;-) hahaha :-D
Szkoda tylko że nie mam 15 lat a nieco więcej :-P

0

chyba łatwo byłoby Ci zrobić to tak...
zrobić jednego focusListenera i dodać go do każdego jtextfielda

i zrobić taką mapę
Map<JTextField,String> map = new IdentityHashMap<JTextField,String>();

na poczatku, przy tworzeniu textFieldow zrobic takie myki
map.add(textField, "nazwa");

a w focuslistenerze przy focusgained (czy coś)

String nazwa = map.get(FocusEvent.getSource());
costam.setText(nazwa);

Taka bardzo walnięta konstrukcja... mapowanie obiektu do jego nazwy :P

0

@up
do tego co podałeś służy metoda w JComponent setName, getName

@temat
nie za bardzo łapie po co to, ale

najpierw z czytaj strukturę danej tabeli potem utwórz według niej JTextField, używając metody setName podaj nazwę przypisanej kolumny i jak poprzednicy mówili dodaj FocuseListenera, który przy wejściu do odpowiedniego JTextField pobierze nazwę kolumny getName i wyświetli gdzieś

0

JComponent i getName, setName to jest to!!!
Chyba prostsze niż wykorzystanie mapy.
Dziękuję bardzo wszystkim za pomoc :-)
Super:-)

Jak się z tym uporam to opublikuję kod dla potomnych, może jeszcze komuś się przyda:-)

Nie mogę wstawić tu jakoś tego kodu (mimo dwóch prób...) wię po prostu daje linka do kodu z Wyświetlaniem nazwy JTextField oraz wartości z tego pola.

http://www.java-forums.org/awt-swing/20499-displaying-text-jtextarea-when-jtextfield-selected.html

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