IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Dědění

Aktivity
Avatar
D0ll0k
Člen
Avatar
D0ll0k:11.2.2015 22:33

Ahojte :D. Už jsem tu zas a mám další problém. Mám třídu, která dědí z JPanel a v ní vložená tlačítka, labely atd. Chtěl bych ale mít třídu, ve které bych mohl všechny tyto komponenty (doufám, že se to tak jmenuje) měnit. Třeba, když bych klikl na label zavolala by se v ní metoda label1Klik().
Koukal jsem ve visual studiu, že když přidám tlačítku, co má udělat po stisknutí, vytvoří se mi ve Form metoda button1Click(). Zkoušel jsem tu udělat i v jave, ale nešlo mi to. Nevěděl jsem jak tu metodu zavolat. Když jsem napsal:

public Hra()
{
    ...
    label.setText("Label");
    label.addMouseListener(new MouseAdapter()
    {
        @Override
        public void mouseReleased(MouseEvent e) {
            super.mouseClicked(e);
            label.setText("Clicked");
        }
    });
}

tak to fungovalo. Jenže pokud jsem přidal:

Gui gui = new Gui();

a pak místo label.setText jsem volal metodu v Gui, hlásilo mi to chybu.
Zjistil jsem, že tomu vadí právě to Gui gui = new Gui();
Neví někdo, co s tím?

Odpovědět
11.2.2015 22:33
Veni, vidi, programmato
Avatar
Rasto
Tvůrce
Avatar
Odpovídá na D0ll0k
Rasto:17.2.2015 0:34

Ahoj,
hmmm... nemyslim, ze tomu vadi Gui gui = new Gui();
Aku chybu ti to hlasi ?

A inak Label resp JLabel je pasivny komponent - zvycajne sa pouziva na zobrazenie textu alebo obrazku, nie na interakciu s userom.
A tiez nie je mi celkom jasne, na co tam mas super.mouseClic­ked(e). Preco rovno neprepisujes metodu mouseClicked(Mou­seEvent e)... Alebo je to preto, ze aj tvoja 'label' dedi od JLabel ?

 
Nahoru Odpovědět
17.2.2015 0:34
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.