Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Java] Można zrobić nazwę zmiennej z kawałka członu i wartości innej zmiennej?

szymon1051 05 Oct 2020 14:56 267 4
  • #1
    szymon1051
    Level 13  
    Mam np JLabel i tam

    etykieta0
    etykieta1
    etykieta2

    W jakieś innej klasie mam funkcje co zwraca wynik np i 0-9

    Da się zrobić tak by łączyło napis "etykieta" ze zwracaną wartością np 5 i dawało etykieta5?
    I ustawić potem etykieta5.setTest("jakiś napis");

    Wiem że mogę zrobić że wszystko na if np
    Code: java
    Log in, to see the code


    I tak dla każdej

    Ale z ciekawości czy da się oszczędzić trochę pisania.

    Wiem że jest tu coś takiego jak switch które mogę zamiast if ale tu dużo pisania przy warunku nie ma.
  • #2
    JacekCz
    Level 39  
    Być może właśnie wynalazłeś kontener Map.
    Po drugie każdy komponent Swinga może przechowywać obiekt z podobną informacją (property)

    Sorry, ale do Twojej sieczki kodu nie umiem dać dopasowanego przykładu. Jak dasz sensowny większy fragment, to napiszę co i jak
  • #3
    szymon1051
    Level 13  
    Javy nie znam za dobrze, ale zrobiłem coś takiego.
    Nie jest to zbyt piękny kod dlatego nie chciałem się chwalić :).
    Jest to bardzo wczesny "projekt".


    Teraz muszę zrozumieć jak Map się używa.

    Code: java
    Log in, to see the code

    Code: java
    Log in, to see the code


    Problem którego nie mogę na razie rozwiązać to jak zrobić że gdy komputer wybierze to znikał przycisk dla człowieka.

    Zastanawiałem się czy nie zrobić żeby unkcja komputer oprócz wpisywania do "listy" nie zwracała też tej liczby co wylosuje.
    Potem funkcja w "glowna" sprawdzała jak to liczba przez parametr funkcji np sprawdz(int e).

    I w tej funkcji w środku pełno if np if (e == 5) i tam opowiednio etykieta5 setText na "o" i przycisk5 setVisible na false

    Na razie rozważam to.
    I dlatego by było mniej kodu roważałem czy nie można połączyć etykieta z liczą jaką zwrócici funkcja komputer.
  • #4
    JacekCz
    Level 39  
    Trik pierwszy
    https://docs.oracle.com/javase/6/docs/api/jav...nent.html#getClientProperty(java.lang.Object)

    Code: java
    Log in, to see the code

    i gdziekolwiek, np jak masz zdarzenie na buttonie

    Code: java
    Log in, to see the code


    Dodano po 5 [minuty]:

    trick drugi, Map, idący wg pytania o "zmienną z kawałkiem członu"
    https://javastart.pl/baza-wiedzy/klasy/interfejs-map

    Code: java
    Log in, to see the code


    Czyli wewnątrz map masz te swoje "zmienne z członem stałym i zmiennym"
    Oczywiście Map nie musi mieć drugiego typu Component, może być co chcesz, byle konsekwentnie

    Zamiarów twojego kodu nadal nie rozumiem w pełni, ale może te wskazówki Ci pomogą.
  • #5
    szymon1051
    Level 13  
    JacekCz wrote:

    Zamiarów twojego kodu nadal nie rozumiem w pełni, ale może te wskazówki Ci pomogą.


    W sensie co ogólnie tworze?
    Grę "kółko i krzyżyk".
    Gdzie na razie jest 1 gracz i komputer.
    Gracz gra za pomocą myszki, klikając w przyciski.

    A pytam o to łączenie nazwy, bo z tego co wiem to lepiej jak jest mniej kodu, a szczególnie jak mniej tego samego, a zmieniona jeden czy dwa znaki w kolejnych kopiach. Po to się funkcje odpowiednie tworzy, o ile się da lub wie jak :).