Wywołanie przycisku poprzez jego nazwę umieszczoną w tablicy

0

Witam serdecznie.

Piszę sobie taką trochę bardziej zaawansowaną grę w kółko i krzyżyk (a raczej gomoku). Plansza 15X15 warunek wygranej, to uzyskanie 5 "swoich" elementów w rzędzie.

IDE: NetBeans
Pola do gry stworzyłem przy pomocy kreatora (są to przyciski jButton) i nadałem im kolejno w rzędach nazwy L1P1 - L1P15; L2P1 - L2P15 itd.

Ich nazwy przechowuję w tablicy dwuwymiarowej 15X15 - i dotąd jest wszystko ok.

Chciałbym teraz wywoływać metody(to się chyba nazywa metoda) tych przycisków i w momencie kiedy wpisuję w linii kodu np. l1p1.setBackground(gracz1.kolor); to jest ok, ale chcę to zrobić jakimś automatem np w pętli for (czy coś takiego), tylko nie koniecznie wiem jak przy pomocy nazwy w tablicy (która jest typu string) uruchomić setBackground (na przykład).

Wpisanie czegoś takiego: tablica1.tablica_nazw[0][0].setBackground(gracz1.kolor); daje marne (a raczej żadne) rezultaty.

Czy ktoś może pomóc w rozwiązaniu tej zagwostki?

0

A nie prościej przechowywać w tablicy przyciski, a nie ich nazwy?

JButton[] przyciski = new JButton[15][15];
0

Na wstępie - dzięki za tak szybką odpowiedź.

Jeżeli chodzi, o Twój pomysł - to jasne, że prościej... by było, gydby nie fakt NetBeans...

  1. Tworzę przyciski przy pomocy Palety Swing - przeciągam je na okno projektu i wklejam.
  2. Jeżeli stworzę przyciski w sposób podany przez Ciebie, to będę musiał je również ustawiać przy pomocy kodu - a to już dla mnie z deka za wysokie progi. No i od razu pytanie - jak to połączyć z resztą layoutu...

Chyba, że jest możliwość stworzenia przycisków w "mój sposób" i wrzucenia ich w tablicę, tak jak Ty radzisz, tyle, że na razie jeszcze go nie odkryłem :)

Pzdr.

Małe wtrącenie:

  1. Stworzyłem tablicę przycisków (nie String, tylko JButton)

Teraz muszę dodać tam wszystkie moje przyciski - czyli łącznie 225
Pisząc kod: tablica1.przyciski[0][0]=l0p0; dla każdego przycisku i miejsca w tablicy z osobna. O tyle o ile wiem jak zrobić, żeby miejsce w tablicy przeskakiwało w pętli +1 przy pomocy dwoch zmiennych np. "i" i "j" o tyle nie wiem jak to zrobić dla nazwy przycisku.

Moje przyciski nazywają się L0P0 do L14P14 - skróty od lini zero przycisku 0 do linii 14 przycisku 14.

Próbowałem już różnych rzeczy, ale cały czas mi krzyczy, że piszę w typie string, co mu się najwidoczniej nie podoba :)

Ma ktoś jakiś pomysł jak nazwę machnąć też automatem?

0

W czym problem?

przyciski[0][0]=jbutton1; // czy jak je tam NetBeans ponazywał
...
0

Kolejna kłoda :(

To jest mój przycisk umieszczony w tablicy:
tablica.przyciski[0][0]=przycisk1;

Kiedy próbuję wywołać każdą metodę dla przycisku przycisk1 w ten sposób:
tablica.przyciski[0][0].doClick;
tablica.przyciski[0][0].setBackground(Color.red);

to:

  1. Program się kompiluje i jest ładnie.
  2. Uruchamia się, i dalej jest ładnie.

Tylko jak wcisnę ten przycisk, to dostaję nullexceptionerror dość długi...

jak wywołuję normalnie po nazwie przycisku, czyli np:
przycisk1.doClick;

To wszystko jest w najlepszym porządku.

Jakieś pomysły?

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