Witam
Mam JPanel PANEL_PL_18
oraz String PAP = "PANEL_PL_18";
Potrzebuję zamienić String PAP tak żeby był rozpoznawany jako JPanel PANEL_PL_18
i żeby można było wykonać coś podobnego:
PAP.add(BUTTON);
Z góry dzięki za odpowiedź
Adam olololloo napisał(a)
Z bazy danych ściągam symbole jako tekst- na przykład jak ściągnie 18 to ma coś dodać do panelu PANEL_PL_18
A dobre stare ify byc nie mogą?
JPanel PANEL_PL_17
JPanel PANEL_PL_18
JPanel PANEL_PL_19
if(pobrane==17)
{
PANEL_PL_17.add(...);
}
if(pobrane==18)
{
PANEL_PL_18.add(...);
}
if(pobrane==19)
{
PANEL_PL_19.add(...);
}
Albo wybitnie zaawansowana technika programowania switch - case ?:)
lipkerson napisał(a)
Adam olololloo napisał(a)
Z bazy danych ściągam symbole jako tekst- na przykład jak ściągnie 18 to ma coś dodać do panelu PANEL_PL_18
A dobre stare ify byc nie mogą?
JPanel PANEL_PL_17
JPanel PANEL_PL_18
JPanel PANEL_PL_19
if(pobrane==17)
{
PANEL_PL_17.add(...);
}
if(pobrane==18)
{
PANEL_PL_18.add(...);
}
if(pobrane==19)
{
PANEL_PL_19.add(...);
}
>
> Albo wybitnie zaawansowana technika programowania switch - case ?:)
Zrobiłbym tak gdyby nie to że tych paneli będzie bardzo dużo
Zwykle używa się HashMap ale można użyć innej. NetBeans podpowie Ci jakie są możliwości jeśli napiszesz:
"Map cośtam = " i naciśniesz CTRL+SPACJA.
package testjava;
import java.util.HashMap;
import java.util.Map;
/**
* Obiekt który kojarzymy ze stringiem.
* @author Piotrek
*/
class MójObiekt {
private int numerek;
public MójObiekt(int numerek) {
this.numerek = numerek;
}
public String metoda() {
return "Witando! Tutaj obiekt #" + numerek;
}
}
/**
* Opakowanie na mapę. Można użyć gołej mapy jeśli mamy malutki projekt.
* @author Piotrek
*/
class Maper {
private Map<String, MójObiekt> mapa = new HashMap<String, MójObiekt>();
public void dodajObiekt(String nazwa, MójObiekt obiekt) {
mapa.put(nazwa, obiekt);
}
public MójObiekt weźObiekt(String nazwa) {
return mapa.get(nazwa);
}
}
public class Main {
public static void main(String[] args) {
Maper maper = new Maper(); // tutaj przechowujemy obiekty
// najpierw wypełniamy mapę - robimy to przy tworzeniu obiektów
maper.dodajObiekt("pierwszy", new MójObiekt(7));
maper.dodajObiekt("drugi", new MójObiekt(5));
maper.dodajObiekt("trzeci", new MójObiekt(3));
// blabla tutaj dużo kodu albo w ogóle całkiem inne miejsce
// dobieramy się do obiektów z mapy
MójObiekt drugi = maper.weźObiekt("drugi");
System.out.println(drugi.metoda());
}
}