[Java, Swing] Dynamické načítání jPanelu

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod iFR3NK 24. 6. 2010 11:45

Zdravím,
mám takový problém. Potřebuji si udělat mřížku s obrázky, kde se v nich bude měnit nějaký text a jejich barva podle požadovaných parametrů. Napadlo mi udělat si novou třídu, která dědí od jPanel a z ní bych v nějakém jiném jPanelu dělal instance s různými parametry. V té mé třídě bych měl i různé komponenty (jLabel, listenery apod.), protože potřebuju dynamicky měnit parametry z ní vytvořeného objektu za běhu programu a k tomu potřebuji aby ten objekt byl "klikatelný".

Problém je: nějak se mi nedaří dynamicky zobrazovat ten jPanel do již běžící aplikace. Pokud chcete dodám kód.

Otázka zní: jdu na to dobře? neměl bych to dělat od základu jinak? Popř. máte někdo nějaký tutoriál, jak načíst dynamicky jPanel s komponentami za běhu a dát ho do jiného panelu?

Děkuji za odpověď.
iFR3NK
Junior
Uživatelský avatar

Odeslat příspěvekod Forty- 24. 6. 2010 13:59

Vytvor si triedu, ktora bude akceptovat ako parameter konstruktoru JPanel. V tvojom GUI maj nastaveny JPanel prazdny, potom ho predaj ako argument triede ktora na ten implicitny JPanel prirobi tiet tvoje komponenty.

Psuedo kod :
Kód: Vybrat vše
// trieda s hlavnym framom
public void setDynamicPanel() {
  this.jPanel = contentHandler.updatePanel(this.jPanel);
}
// trieda na obsluhu JPanelu
public class ContentHandler {
  public JPanel updatePanel(JPanel jPanel) {
    jPanel.add(new JLabel("Hello"));
    jPanel.add(new JButton("Click"));
    // atd. - UI komponenty tu 
    return jPanel; // sme v Jave musime ho vratit kvoli tomu, ze pracujeme s kopiou
  }
}


Samozrejme ty tam chces tych panelov viac, tak si mozes urobit obsluhu pre dalsi, alebo ich rovno narvat niekolko ako parametre. A tuto metodu updatePanel volaj napr. pri nejakom evente - neviem ako to presne mas
Forty-
Junior
Uživatelský avatar

Odeslat příspěvekod iFR3NK 25. 6. 2010 14:39

díky moc. Chápu myšlenku, vyzkouším a dám vědět ;)
iFR3NK
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků